私はjavascriptを使ったプログラミングが初めてです。そして、サーバー側にangular + node.jsを選択しました。私はAngularのチュートリアルを行いましたが、彼らが提供したweb-server.jsに関していくつか質問があります。サーバー部分はAngularチュートリアルでカバーされていないため、いくつか質問があります:
サーバーは次のコマンド ラインで実行されます。
node ./scripts/web-server.js
実行されているメイン関数は「main」であり、次の方法で実行されます。
関数は次のとおりです。
function main(argv) {
new HttpServer({
'GET': createServlet(StaticServlet),
'HEAD': createServlet(StaticServlet)
}).start(Number(argv[2]) || DEFAULT_PORT);
}
function HttpServer(handlers) {
this.handlers = handlers;
this.server = http.createServer(this.handleRequest_.bind(this));
}
function createServlet(Class) {
var servlet = new Class();
return servlet.handleRequest.bind(servlet);
}
function StaticServlet() {}
StaticServlet.MimeMap = {
'txt': 'text/plain',
'html': 'text/html',
'css': 'text/css',
'xml': 'application/xml',
'json': 'application/json',
'js': 'application/javascript',
'jpg': 'image/jpeg',
'jpeg': 'image/jpeg',
'gif': 'image/gif',
'png': 'image/png',
'svg': 'image/svg+xml'
};
私の質問:
{ 'GET': createServlet(StaticServlet),
'HEAD': createServlet(StaticServlet)
}
これらの行が何をするのかわかりません。私はこの行がオブジェクトを作成すると仮定しますが、私が知っている方法はもっと似ているでしょう
{
GET: createServlet(StaticServlet),
HEAD: createServlet(StaticServlet)
}
これらの行の「 」はどういう意味ですか?
2 番目の質問: これらはどういう意味ですか?
.start(Number(argv[2]) || DEFAULT_PORT);
.start 関数は次のとおりです。
HttpServer.prototype.start = function(port) {
this.port = port;
this.server.listen(port);
util.puts('Http Server running at http://localhost:' + port + '/');
};
しかし、なぜ||なのかわかりません argv[2] は実際には null なので、なぜそれを渡す必要があるのでしょうか。
3 番目の質問: StaticServlet.MimeMap の作成に関するものです。それは私の最初の質問と非常によく似ています。私はここで構文を理解していません:
'txt': 'text/plain',.
それは何を作成しますか?