如何在Javascript中确定函数参数?
我是一名学习Javascript(Node.js)的Java开发人员 这是我尝试运行的第一段代码:如何在Javascript中确定函数参数?,javascript,node.js,Javascript,Node.js,我是一名学习Javascript(Node.js)的Java开发人员 这是我尝试运行的第一段代码: var sys = require("sys"), my_http = require("http"); my_http.createServer(function(request,response){ response.writeHeader(200, {"Content-Type": "text/plain"}); response.write("Hello World");
var sys = require("sys"),
my_http = require("http");
my_http.createServer(function(request,response){
response.writeHeader(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8080);
若并没有文档,我怎么知道createServer采用了一个以请求和响应为参数的函数?我这样问是因为我想为即将开始面对的所有未记录代码做好准备。以下是createServer函数的源代码:
function createServer(options) {
var bunyan = require('./bunyan_helper');
var InternalError = require('./errors').InternalError;
var Router = require('./router');
var Server = require('./server');
var opts = shallowCopy(options || {});
var server;
opts.name = opts.name || 'restify';
opts.log = opts.log || bunyan.createLogger(opts.name);
opts.router = opts.router || new Router(opts);
server = new Server(opts);
server.on('uncaughtException', function (req, res, route, e) {
if (this.listeners('uncaughtException').length > 1 ||
res._headerSent) {
return (false);
}
res.send(new InternalError(e, e.message || 'unexpected error'));
return (true);
});
return (server);
}
我知道Javascript是一种动态类型的语言,但我想知道人们如何在不知道类型的情况下调试或理解彼此的代码。Javascript的好处在于它的解释意味着您始终可以访问实际的源代码本身。对于node,您可以查看
node_modules/blah
来读取源代码,但是npm上的绝大多数内容在github上也是开源的,您也可以在那里读取源代码
在浏览器中,如果遇到缩小的代码,开发人员工具会有一个自动格式化按钮,但在节点中,通常不需要自动格式化按钮,因为代码是未经统一发布的
也就是说,有些东西文档记录得很好,有时文档错误或过时,有时阅读源代码既不快速也不直接。但是,如果某些内容对您来说确实有问题,并且既没有文档记录又难以阅读,您可以也应该在npm上切换到其他内容,因为“没有人有时间这样做”。在使用JavaScript时,您必须非常熟悉api。例如,document.getElementById(id)。代码中没有关于id的提示,但它是很容易理解的。这就是文档、注释和显式变量名的用途。不幸的是,你是对的-选项对我来说并不是尖叫
函数。看起来你们需要看看路由器或服务器,看看它们是如何使用选项的。那里可能更清楚。此外,http是一个相当标准的节点模块。在线文档似乎没问题。小心你得到的代码。sys
模块已经离开很长时间了。