Javascript node.js模块/导出系统:是否可以将模块导出为函数
我想在Dispatch.js中执行类似的操作Javascript node.js模块/导出系统:是否可以将模块导出为函数,javascript,module,node.js,Javascript,Module,Node.js,我想在Dispatch.js中执行类似的操作 function handle(msg) { .... } exports = handle; 这在调用index.js中 var dispatch = require("./Dispatch); dispatch("data"); 有什么想法吗?做: function handle(msg) { .... } module.exports = handle; 而且它可以按您想要的方式工作。请执行以下操作: function h
function handle(msg) {
....
}
exports = handle;
这在调用index.js中
var dispatch = require("./Dispatch);
dispatch("data");
有什么想法吗?做:
function handle(msg) {
....
}
module.exports = handle;
而且它可以按您想要的方式工作。请执行以下操作:
function handle(msg) {
....
}
module.exports = handle;
它可以按您想要的方式工作。
exports=handle
这将创建一个名为exports
的局部变量。这与覆盖模块导出不同
module.exports=handle
这将覆盖模块范围内的exports变量,然后由require
读取
在浏览器的窗口中[“foo”]
和foo
是相同的,但是在节点模块中[“foo”]
和foo
的行为有细微的不同
局部变量作用域上下文和模块
不是一回事 exports=handle
这将创建一个名为exports
的局部变量。这与覆盖模块导出不同
module.exports=handle
这将覆盖模块范围内的exports变量,然后由require
读取
在浏览器的窗口中[“foo”]
和foo
是相同的,但是在节点模块中[“foo”]
和foo
的行为有细微的不同
局部变量作用域上下文和模块
不是一回事 这一问题背后的问题(exports
vsmodule.exports
vsexports.something
)最好在本文中描述:
第一个版本(exports=handle
)正是问题所在:缺少javascript中必需的绑定:
exports=handle
表示window.exports=handle
(或node.js作为全局对象的任何节点)此问题背后的问题(exports
vsmodule.exports
vsexports.something
)最好在本文中描述:
第一个版本(exports=handle
)正是问题所在:缺少javascript中必需的绑定:
exports=handle
表示window.exports=handle
(或node.js作为全局对象的任何节点)另一种看待问题的方法是思考node如何加载您的模块:
函数加载模块(模块,导出){
里面有你的模块代码
}
如果代码覆盖了exports
参数(exports=handle
),则此更改在此函数外部不可见。对于这种覆盖,可以使用模块
对象
如果导出是函数体所在范围内可见的变量,则不会出现问题。另一种解决问题的方法是考虑节点如何加载模块:
函数加载模块(模块,导出){
里面有你的模块代码
}
如果代码覆盖了exports
参数(exports=handle
),则此更改在此函数外部不可见。对于这种覆盖,可以使用模块
对象
如果导出是函数体所在范围内可见的变量,则不会出现问题。或module.exports=function(msg){}或module.exports=function(msg){}