Javascript 节点js和胡子

Javascript 节点js和胡子,javascript,node.js,mustache,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

我正在努力学习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的两个不同教程


注:我知道我可以使用express或其他框架,但我想从头开始使用nodejs来了解它的实际工作原理。

首先,您的代码需要在某个时候调用
renderIndex()。第二,除非自上次查看以来,mustache被严重重写,
mu.compileAndRender
将返回一个字符串,通常需要使用
httpResponse
s
write
end
方法发送该字符串
util.pimp
是一个打字错误(尽管无可否认,这是一个有趣到令人钦佩的错误)
util.pump
现在已被弃用,如果您有一个
readStream
,首选的方法是调用它的
pipe
方法,并使用一个与要将其发送到的
writeStream
相对应的参数(例如
httpResponse


我认为你试图一下子学到太多东西;您最好先学习如何使用
express
处理路由和类似的东西(暂时忽略express的模板/渲染功能),然后,一旦掌握了窍门,就开始渲染和模板化(胡子是如此普遍和流行,以至于你可能会认为express的开发人员已经集成了它,但出于某种原因,他们没有).

告诉我们它实际失败的地方。你在浏览器中加载了任何类型的页面,但模板失败了吗?没有显示任何内容吗?它根本没有加载页面。我知道我应该调用函数renderIndex,但即使调用它,服务器看起来也无法加载页面。整个想法只是为了学习,这就是为什么我不这么做的原因nt使用express或其他框架。你认为使用express会帮助我学习nodejs吗?我的想法是直接开始使用node,没有框架,我担心这会像jquery和javascript一样。问题是你需要一次学习多少细节。有时最好先从原始水平开始,然后再学习一些hing建立在它的基础上;其他时候则恰恰相反。对于大多数人来说,最好在他们之间交替;看看“高级”的东西(如express或jquery),了解它,然后思考它是如何转化为“低级”的东西(如node的http模块或DOM API).关键是要防止不同的概念层次相互脱节。