为什么在 Node 中一定要使用 require 一步调用一个函数?

Why do you have to use require and call a function in one step in Node?

以socket.io为例:

为什么这在节点中有效:

var io = require('socket.io').listen(server);

但是分两个不同的步骤做不是吗? (即):

var io = require('socket.io');
io.listen(server);

案例 1:

var io = require('socket.io').listen(server);

此处,io 设置为从 socket.io 模块调用 listen(server) 的结果。

案例二:

var io = require('socket.io');
io.listen(server);

此处,io 设置为 socket.io 模块本身。

因此它们执行相同的功能,但 io 最终设置为不同的值。

案例 1 中的函数调用链接是 node.js 中的常见用法,但如果您真的想使用两行代码,同时 io 仍然按原样设置情况一,单独抓取require调用的结果:

var socketio = require('socket.io');
var io = socketio.listen(server);