【问题标题】:Exporting a function from an external file does not work从外部文件导出函数不起作用
【发布时间】:2019-10-26 21:42:51
【问题描述】:

我需要从外部文件中导出一个函数。

const filter = require('../controllers/filter.js');

exports.get = async function (req, res, next) {
  filter.validateId(req, res, next);
  const db = req.app.get('db');
  let id = req.params.id;
  let user;
  try {
    user = await db.models.user.findByPk(id);
  } catch (err) {
    next(err);
  }
  res.json(user);
};

文件结构: enter image description here

但我得到了错误:

{ NotFoundError: 未找到 在 E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\app.js:43:8 在 Layer.handle [as handle_request] (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:317:13) 在 E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:335:12) 在下一个 (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:275:10) 在 E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:635:15 在下一个 (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:260:14) 在 Function.handle (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:174:3) 在路由器 (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:47:12) 在 Layer.handle [as handle_request] (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:317:13) 在 E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:335:12) 在下一个 (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\express\lib\router\index.js:275:10) 在 SendStream.error (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\serve-static\index.js:121:7) 在 SendStream.emit (events.js:189:13) 在 SendStream.error (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\send\index.js:270:17) 在 SendStream.onStatError (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\send\index.js:421:12) 在下一个 (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\send\index.js:736:16) 在 onstat (E:\Dropbox\BigDeal\clone\BigDealExpressJSTest\node_modules\send\index.js:725:14) 在 FSReqWrap.oncomplete (fs.js:154:21) 消息:'未找到'} 获取 /4 404 48.713 毫秒 - 100

【问题讨论】:

  • 尽量像图片一样在问题帖子中添加所有内容,不要引用将来可能无法使用的外部链接

标签: node.js express


【解决方案1】:

我认为require 指向了错误的位置(假设提供的代码在userController.js 中)。

应该是:

const filter = require('./filter');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多