剧场模式
首页后端轻松学 nodejs - 基础篇

轻松学 Node.js - 基础篇 #13 web 服务器 part 5 路由

下载源码hfpp2012发布于Nodejs3335 次点击播放时长:05:37
5

注意:

404页面这个部分不对,它的状态码应该是 404,而不是 200(疏忽之处,请各位看官自行修正)

server.js

var http = require('http');
var fs = require('fs');

function startServer() {
    var onRequest = function(request, response) {
        console.log('Request received ' + request.url);
        if (request.url === '/' || request.url === '/home') {
            response.writeHead(200, { 'Content-Type': 'text/html' });
            fs.createReadStream(__dirname + '/index.html', 'utf8').pipe(response);
        } else if (request.url === '/review') {
            response.writeHead(200, { 'Content-Type': 'text/html' });
            fs.createReadStream(__dirname + '/review.html', 'utf8').pipe(response);
        } else if (request.url === '/api/v1/records') {
            response.writeHead(200, { 'Content-Type': 'application/json' });
            var jsonObj = {
                name: "hfpp2012"
            };
            response.end(JSON.stringify(jsonObj));
        } else {
            response.writeHead(200, { 'Content-Type': 'text/html' });
            fs.createReadStream(__dirname + '/404.html', 'utf8').pipe(response);
        }
    }

    var server = http.createServer(onRequest);

    server.listen(3000, '127.0.0.1');
    console.log('Server started on localhost port 3000');
}

exports.startServer = startServer;

review.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    review page
</body>

</html>

404.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    404 error page
</body>

</html>
4 条回复
  • DanceSmile #1

    createReadStream到response 就不需要response.end() 么?

  • hfpp2012 #2
    DanceSmile #10 回复

    可以不用,有些方法可能会自带 end 的特性,那样,可以这样简单理解

  • Ankkaya #3

    lz我按照你的代码写的,运行一直报错 Unknown encoding: uft8,请问怎么回事

  • zhiyoo #4
    Ankkaya #10 回复

    uft8 -> utf8

支付宝付款
微信扫码打赏

加我微信:15014006126

加 QQ 群:697272886(1 群)

加 QQ 群:856141852(2 群)

相似的视频
轻松学 Node.js - 基础篇 #9 web 服务器 part 1 介绍

轻松学 Node.js - 基础篇 #9 web 服务器 part 1 介绍

免费播放时长:05:32

3929 次点击

轻松学 Node.js - 基础篇 #10 web 服务器 part 2 响应 JSON

轻松学 Node.js - 基础篇 #10 web 服务器 part 2 响应 JSON

免费播放时长:03:44

3665 次点击

轻松学 Node.js - 基础篇 #11 web 服务器 part 3 响应 HTML 页面

轻松学 Node.js - 基础篇 #11 web 服务器 part 3 响应 HTML 页面

免费播放时长:03:47

3017 次点击

轻松学 dva(基础 + 进阶) #5 定义路由

轻松学 dva(基础 + 进阶) #5 定义路由

Pro播放时长:07:20

3782 次点击

© Rails365 | 隐私条款 | 服务条款 | 粤ICP备15004902号 | 在线学员:9

Top