1

私は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について読んでいた2つの異なるチュートリアルをマージしようとしました。

PS: Express やその他のフレームワークを使用できることはわかっていますが、実際にどのように機能するかを理解するために、nodejs を最初から使用したいと考えています。

4

1 に答える 1

3

まず第一に、コードはrenderIndex()ある時点で呼び出す必要があります。第二に、私が最後に見た後に口ひげが真剣に書き直されていない限り、通常はsまたはメソッドmu.compileAndRenderを使用して送信する必要がある文字列が返されます。タイプミスです(確かに、賞賛に値するほど面白いものです)。は推奨されなくなりました。 を持っている場合は、送信先の に対応する引数(たとえば、 ) を指定してそのメソッドを呼び出すことをお勧めします。httpResponsewriteendutil.pimputil.pumpreadStreampipewriteStreamhttpResponse

あなたは一度に多くのことを学ぼうとしていると思います。最初にルーティングや同様のものを処理する方法を学習しexpress(当面は Express のテンプレート/レンダリング機能を無視します)、それからコツをつかんだら、レンダリングとテンプレート作成に取り組みます (口ひげはとてもExpress の開発者はすでに統合していると思われる一般的で人気のあるものですが、何らかの理由で統合していません)。

于 2012-09-19T10:49:37.860 に答える