主要讲解怎么通过 node 启动一个服务。
返回一个静态页面
文件目录如下所示
app.js 代码
 
const fs = require('fs');const http = require('http');
// 创建一个f服务器let server = http.createServer((req, res) => {
    // fs.readFile(文件路径,字符编码,回调函数)    fs.readFile(__dirname + "/index.html", "utf-8", (err, data) => {        if(err) throw err;
        // 响应头 response.writeHead(状态吗, 内容的格式[这里返回的文件是html])        res.writeHead(200, {"content-type": "text/html"});
        // 响应内容        res.write(data);
        // 响应结束        res.end();    })
})
// 设置端口号server.listen(8080);console.log('服务器已启动~~');
   复制代码
 
index.html 代码
 <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>index</title></head><body>    <h1>Rabbit!</h1></body></html>
   复制代码
 
最后,在浏览器访问 localhost:8080
根据路由返回对应的页面
上面的例子中,不管访问 localhost:8080 还是 localhost:8080/xxxx ,服务器都是返回 index.html 的内容。
如果需要根据 url 指定返回不同的页面,这就需要引入路由这个概念了。
文件目录如下
这里有 2 个 html 文件和一个 js 文件。
在 app.js 中,需要根据 url 来判断返回哪个页面
 const fs = require('fs');const http = require('http');
let server = http.createServer((req, res) => {
    // 过滤 /favicon.ico 的请求    if(req.url !== '/favicon.ico') {                // '/' 和 'index' 都返回 index.html 页面,其他都请求就返回对应的页面路径        let getUrl = req.url === '/' ? '/index.html' : req.url;
        // fs.readFile(文件路径,字符编码,回调函数)        fs.readFile(__dirname + getUrl + '.html', "utf-8", (err, data) => {            if(err) throw err;
            // 响应头 response.writeHead(状态吗, 内容的格式)            res.writeHead(200, {"content-type": "text/html"});
            // 响应内容            res.write(data);
            // 响应结束            res.end();        })    }
})
server.listen(8080);console.log('服务器已启动~~');
   复制代码
 
index.html 代码
 
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>index</title></head><body>    <h1>Rabbit!</h1></body></html>
   复制代码
 
about.html 代码
 <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>about</title></head><body>    <p>about~~~~</p></body></html>
   复制代码
 
当浏览器访问 localhost:8080 或者 localhost:8080/index ,就返回 index.html 页面。
当访问 localhost:8080/about 时,就返回 about.html 页面
以上是简单的用法。
评论