Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js模块/导出系统:是否可以将模块导出为函数_Javascript_Module_Node.js - Fatal编程技术网

Javascript node.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

我想在Dispatch.js中执行类似的操作

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
vs
module.exports
vs
exports.something
)最好在本文中描述:

第一个版本(
exports=handle
)正是问题所在:缺少javascript中必需的绑定:


exports=handle
表示
window.exports=handle
(或node.js作为全局对象的任何节点)

此问题背后的问题(
exports
vs
module.exports
vs
exports.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){}