javascript - node.js app.js 没有显示HTML页面,而是显示HTML代码

  显示原文与译文双语对照的内容

我的app.js 在节点中出现问题,但不显示"html代码",而是"html代码"。 我不知道该怎么做才能得到很好的帮助。 我希望能够从 public 文件夹加载 html,javascript和 css 。 这是我的app.js 代码:


var http = require("http"),
 url = require("url"),
 path = require("path"),
 fs = require("fs")

http.createServer(function(request, response) {

var uri = url.parse(request.url).pathname
, filename = path.join(process.cwd(), uri);

path.exists(filename, function(exists) {
 if(!exists) {
 response.writeHead(404, {"Content-Type":"text/plain"});
 response.write("404 Not Foundn");
 response.end();
 return;
}

if (fs.statSync(filename).isDirectory()) filename += 'public/index.html';

fs.readFile(filename,"binary", function(err, file) {
 if(err) { 
 response.writeHead(500, {"Content-Type":"text/plain"});
 response.write(err +"n");
 response.end();
 return;
 }

 response.writeHead(200);
 response.write(file,"binary");
 response.end();
 });
 });
}).listen(process.env.PORT, process.env.IP);

console.log("Static file server running./CTRL + C to shutdown");

时间: 作者:

如果你尝试了,则不指定内容类型:


fs.readFile(filename,"binary", function(err, file) {
if(err) { 
 response.writeHead(500, {"Content-Type":"text/plain"});
 response.write(err +"n");
 response.end();
 return;
 }

 response.writeHead(200, {'Content-Type': 'text/html'});
 response.write(file,"binary");
 response.end();
 });
 });
}).listen(process.env.PORT, process.env.IP);

如果你想在html中显示错误页面,你还需要更新该内容类型。

...