我正在使用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>
答案 0 :(得分:1)
res.end(html);
res.writeHead(200, { 'Content-Type': 'text/html' });
不包括res.end
意味着服务器将完成对请求的处理,但不会告诉浏览器结果,因此浏览器无限期地等待响应。