在module.exports = testMethod ;和module.exports = { testMethod } ;之间的区别是什么?因为当我使用module.exports = testMethod ;时,它会抛出错误如下所示。错误: Route.get()需要一个回调函数,但是得到了一个未定义的对象,但是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 };发布于 2021-01-07 06:07:00
从VSCode到Js,ES5或ES6版本之间的更改可能会给您带来糟糕的结果。所以,很不幸,我最近也遇到了同样的问题,在ES6 module.exports = router上使用重构到一些Js文件的末尾(Node使用express)之后,它就完成了。
对我来说很奇怪,在Cloud9上我没有任何问题。
发布于 2021-01-07 08:19:53
这两种方法都用于将模块导出到外部函数。但是,当您使用任何回调函数时,
module.exports = somectrl然后它就会失败,但是
module.exports = { somectrl }因为当您创建一个对象时,它实际上实例化了它,但是当您传递一个ref函数/ const函数名时,它将表现为一个不能正常工作的现有函数。
你可以做这样的事来工作,
module.exports = somectrl()或
module.exports = new somectrl()https://stackoverflow.com/questions/65531868
复制相似问题