我是使用 javascript 编程的新手。我为服务器端选择了 angular + node.js。我浏览了角度教程,我对他们提供的 web-server.js 有一些疑问。由于服务器部分未包含在角度教程中,我有一些问题:
服务器使用以下命令行运行:
node ./scripts/web-server.js
正在执行的主要功能是“主要”,它是通过以下方式完成的:main(process.argv);
功能是:
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)
}
这些行中的“”是什么意思?
第二个问题:这些是什么意思?
.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] 实际上是空的,所以我们为什么需要传递它。
第三个问题:关于StaticServlet.MimeMap的创建。这与我认为的第一个问题非常相似。我不明白这里的语法:
'txt': 'text/plain',.
它创造了什么?