我正在尝试学习nodejs。 我想使用mustache和nodejs提供静态html文件。 我使用以下代码创建了一个启动服务器的模块:
var http = require("http");
function startServer(){
function onRequest(request,response){
console.log("Request received");
response.writeHead(200, {"Content-type" : "text/html" });
response.write("hello");
response.end();
}
console.log("The server is running at http://localhost:8888");
http.createServer(onRequest).listen(8888);
}
exports.startServer = startServer;
然后我在indexjs文件中执行此操作:
var server = require("./server");
var util = require("util");
var fs= require("fs");
var mu = require("mu2");
function renderIndex(){
var streamIndex = mu.compileAndRender('index.html',{"name" : "Antonio"});
util.pimp(streamIndex, response);
}
server.startServer(renderIndex);
我知道我做的事情完全错了,但是无法得到错误的地方。我试图合并我正在阅读的关于nodejs的两个不同的教程。
P.S:我知道我可以使用express或其他框架,但我想从头开始使用nodejs来理解它是如何工作的。
答案 0 :(得分:3)
首先,您的代码需要在某个时刻调用renderIndex()
。其次,除非我上次查看过胡须被严重改写,mu.compileAndRender
会给你一个字符串,你通常需要使用httpResponse
s write
或end
来发送方法。 util.pimp
是一个错字(虽然可以说是一个令人钦佩的有趣的东西); util.pump
现已弃用,如果您有readStream
,则首选方法是使用与您要发送的pipe
对应的参数调用其writeStream
方法到(例如httpResponse
)。
我认为你想要立刻学到太多东西;你可能最好先学习如何使用express
来处理路由和类似的东西(暂时忽略express的模板/渲染能力)然后,一旦你掌握了它,就可以处理渲染和模板(胡子是如此普遍和受欢迎,你认为表达的开发人员已经集成它,但由于某种原因他们没有)。