首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Module.exports in JavaScript

Module.exports in JavaScript
EN

Stack Overflow用户
提问于 2021-01-01 17:15:50
回答 2查看 439关注 0票数 1

module.exports = testMethod ;module.exports = { testMethod } ;之间的区别是什么?因为当我使用module.exports = testMethod ;时,它会抛出错误如下所示。错误: Route.get()需要一个回调函数,但是得到了一个未定义的对象,但是module.exports = { testMethod } ;没有问题

整个代码是

代码语言:javascript
复制
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 };
EN

回答 2

Stack Overflow用户

发布于 2021-01-07 06:07:00

从VSCode到Js,ES5或ES6版本之间的更改可能会给您带来糟糕的结果。所以,很不幸,我最近也遇到了同样的问题,在ES6 module.exports = router上使用重构到一些Js文件的末尾(Node使用express)之后,它就完成了。

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

票数 0
EN

Stack Overflow用户

发布于 2021-01-07 08:19:53

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

代码语言:javascript
复制
module.exports = somectrl

然后它就会失败,但是

代码语言:javascript
复制
module.exports = { somectrl }

因为当您创建一个对象时,它实际上实例化了它,但是当您传递一个ref函数/ const函数名时,它将表现为一个不能正常工作的现有函数。

你可以做这样的事来工作,

代码语言:javascript
复制
module.exports = somectrl()

代码语言:javascript
复制
module.exports = new somectrl()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65531868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档