nodejs与html代码分离
有没有什么办法不用框架就可以让html和js代码分离,每写一句html都要用引号和加号忒麻烦. 怎样用nodejs读取一个html文件?readFile()?readFile的结果怎么返回到浏览器显示呢?
7 回复
- 分离js和html,可以用模板啊,有好多:mustache,javascript-template,juicer等等
- 读取html并返回可参考以下代码:
fs.readFile(file_path, "binary", function(err, file) {
if (err) {
response.writeHead(500, {
'Content-Type': 'text/plain'
});
response.end(err);
}
else {
response.writeHead(200, {
'Content-Type': 'text/html'
});
response.write(file, "binary");
response.end();
}
});
我现在的程序是这样的,file_path用绝对路径时可以正常返回数据,但用"./index.html"这个相对路径时,就异常关闭
var http = require("http");
http.createServer(function(request, response) {
var file_path = "./index.html";
require("fs").readFile(file_path, "binary", function(err, file) {
if (err) {
response.writeHead(500, {
'Content-Type': 'text/plain'
});
response.end(err);
}
else {
response.writeHead(200, {
'Content-Type': 'text/html'
});
response.write(file, "binary");
response.end();
}
}); }).listen(8888);
console.log("服务启动...");
process.on('uncaughtException', function (err) {
console.error(err.stack);
});
用这个捕获一下错误,另外我还是推荐用express吧, restful,static file, gzip 还有好多东西都帮你做好了
@MiracleIT 你可以像这样找到index.html相对于本文件的路径 path.join(path.dirname(__dirname), ‘…/…/public/index.html’);
@jiyinyiyong 嗯 是执行路径的问题,把执行路径改成index.html的路径就可以了,有没有办法设置默认的执行路径