Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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中的Module.exports_Javascript_Module.exports - Fatal编程技术网

JavaScript中的Module.exports

JavaScript中的Module.exports,javascript,module.exports,Javascript,Module.exports,module.exports=testMethod之间的差异是什么和module.exports={testMethod}

module.exports=testMethod之间的差异是什么
module.exports={testMethod}module.exports=testMethod时它抛出如下错误。
错误:Route.get()需要回调函数,但得到了一个[object Undefined]
但是我同意
module.exports={testMethod}

整个代码是

const testMethod = asyncErrorWrapper(async (req, res, next) => {
  const information = req.body;

  const question = await Question.create({
    title: information.title,
    content: information.content,
    user: req.user.id,
  });

  res.status(200).json({
    success: true,
    data: question,
  });
});

module.exports = { testMethod };

从VSCode开始,将ES5或ES6版本更改为Js可能会让您陷入困境。 因此,请注意,我最近也遇到了同样的问题,在使用ES6
module.exports=router
重构到某个Js文件(使用express的节点项目)的末尾后,就完成了


对我来说很奇怪,在Aws上的Cloud9上我没有问题。

从VSCode,在ES5或ES6版本之间切换到Js可能会让你走上一条糟糕的道路。 因此,请注意,我最近也遇到了同样的问题,在使用ES6
module.exports=router
重构到某个Js文件(使用express的节点项目)的末尾后,就完成了


对我来说很奇怪,在Aws上的Cloud9上,我没有问题。

两者都用于将模块导出到外部函数。但是当您使用任何回调函数时

module.exports = somectrl
那么它将失败,但是

module.exports = { somectrl }
因为当您创建一个对象时,它实际上实例化了它,但是当您传递一个ref函数/const函数名时,它将作为一个不正常工作的现有函数

你可以这样做来工作

module.exports = somectrl()


两者都用于将模块导出到外部函数。但是当您使用任何回调函数时

module.exports = somectrl
那么它将失败,但是

module.exports = { somectrl }
因为当您创建一个对象时,它实际上实例化了它,但是当您传递一个ref函数/const函数名时,它将作为一个不正常工作的现有函数

你可以这样做来工作

module.exports = somectrl()


第一个导出
testMethod
不管是什么,第二个导出具有属性
testMethod
的对象,其值为
testMethod
——这可能与错误无关。您可以分享一个吗?一个使用对象速记语法将其包装在对象中,另一个不使用。这都是正常的js语法,而不是任何神奇的特殊东西。它只是a,a=1的区别是什么;b=a和a=1;b={a}?我明白了,重点是一个导出是一个对象,另一个不是。谢谢…第一个导出
testMethod
不管是什么,第二个导出具有属性
testMethod
的对象,其值为
testMethod
——这可能与错误无关。您可以分享一个吗?一个使用对象速记语法将其包装在对象中,另一个不使用。这都是正常的js语法,而不是任何神奇的特殊东西。它只是a,a=1的区别是什么;b=a和a=1;b={a}?我明白了,重点是一个导出是一个对象,另一个不是。谢谢