Node.js In Action Book回调示例

时间:2018-02-08 17:35:08

标签: javascript html json node.js

我正在使用Node.js这本书第二版。在页30上有一个回调示例,您在html中使用显示json我下面的代码没有运行,我不知道为什么。我使用命令node。\ blog_recent.js在正确的目录中运行下面的代码,但是当我点击localhost时,它在浏览器中没有做任何事情:8000

  

的NodeJS

 const http = require('http');
    const fs = require('fs');
    http.createServer((req,res) => {
    if (req.url == '/') {
        fs.readFile('./titles.json', (err, data) => {
            if (err) {
                console.error(err);
                res.end('Server Error');
            } else {
                const titles = JSON.parse(data.toString());
                fs.readFile('./template.html', (err,data) => {
                if (err) {
                    console.error(err);
                    res.end('Server Error');
                } else {
                    const tmpl = data.toString();
                    const html = tmpl.replace('%', titles.join('</li><li>'));
                    res.writeHead(200, { 'Content-Type': 'text/html' });
                }
                });
            }
        });
    }
    }).listen(8000, 'localhost');
  

的Json

    [
    "Kazakhstan is a huge country.... what goes on there?",
    "This weather is making me craaazy",
    "My neighbor sort of howls at night"
    ]
  

HTML

<!doctype html>
<html>
<head></head>
<body>
    <h1>Latest Posts</h1>
    <ul><li>%</li></ul>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

res.end(html);

之后你遗失了res.writeHead(200, { 'Content-Type': 'text/html' });

不包括res.end意味着服务器将完成对请求的处理,但不会告诉浏览器结果,因此浏览器无限期地等待响应。