宿題:
Node.jsの使用を開始するにはどうすればよいですか[クローズ]
裏話:私は自分のフレームワークを書いてみたかったのですが、おそらくそれを完全に理解していないために、いくつかの問題に直面しています。
私が達成したいのは、次のような構文です。
var app = require('./app'); //this part is understood and it works in my current code.
app.get('/someUrl', function(){ //do stuff here });
app.post('/someOtherUrl', function(){ //do stuff here });
私はこれと同じ構文を持つExpressフレームワークを知っていますが、それらのソースコードを読むことはまだ私を理解していません。
これを達成するのは簡単な作業かもしれませんが、私はまだそれを作成することはできません。
アプリケーションのより深いところにファイルを入れようとするとrequire('./app');
、未定義のオブジェクトが生成されるため、サーバーはシングルトンオブジェクトであると推測しています。
だから私は何を試しましたか?
私の現在のコードはこのように見えます、そしてどういうわけか私はこれが進むべき道であるように感じます、しかし私はどうやらこのようにそれをすることができません。
require();
読みやすくするために、すべてのステートメントを省略しています。
server.js:
var app = module.exports = {
preProcess: function onRequest(request, response){
processor.preRequest(request); //this object adds methods on the request object
var path = urllib.parse(request.url).pathname;
router.route(urls, path, request, response);
},
createServer: function() {
console.log("Server start up done.");
return this.server = http.createServer(this.preProcess);
}
};
exports.app = app;
これを書いている時点では、このオブジェクトをget()
メソッドで拡張することを試みています。
index.js:
var app = require('./server');
app.createServer().listen('1337');
ビットはrouter.route()
基本的にリクエストをアプリケーションに送信し、router.jsファイル内で魔法をかけ、リクエストを(これまでのところ)/urlThatWasRequestedにマップする関数にルーティングします
これが私が残したい行動です。これはかなり難しい注文かもしれませんが、私のコードはすべて簡単に破棄でき、これは私自身のプロジェクトであるため、コードベース全体を書き直すことを恐れません。
私の質問を説明するのにこれで十分だと思います。これをもう少し明確にするために何を追加すべきかを言ってください。
前もって感謝します!