节点js和小胡子

时间:2012-09-19 10:11:55

标签: javascript node.js mustache

我正在尝试学习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来理解它是如何工作的。

1 个答案:

答案 0 :(得分:3)

首先,您的代码需要在某个时刻调用renderIndex()。其次,除非我上次查看过胡须被严重改写,mu.compileAndRender会给你一个字符串,你通常需要使用httpResponse s writeend来发送方法。 util.pimp是一个错字(虽然可以说是一个令人钦佩的有趣的东西); util.pump现已弃用,如果您有readStream,则首选方法是使用与您要发送的pipe对应的参数调用其writeStream方法到(例如httpResponse)。

我认为你想要立刻学到太多东西;你可能最好先学习如何使用express来处理路由和类似的东西(暂时忽略express的模板/渲染能力)然后,一旦你掌握了它,就可以处理渲染和模板(胡子是如此普遍和受欢迎,你认为表达的开发人员已经集成它,但由于某种原因他们没有)。