调用时,快速路由无法触发

时间:2019-04-19 14:39:58

标签: javascript node.js express

我在Express应用程序中定义了一条路由,并将其保存在一个路由器中,该路由器已导入到主文件中的我的应用程序中。

我在index.js

中这样安装了路由器
const Routes = require('./routes');
app.use('/address', Routes.AddressRoutes);

在路由文件夹中,我的地址路由器是这样暴露的:

//./routes/index.js
const AddressRoutes = require('./address');
module.exports = Routes = {
    AddressRoutes,
};

// ./routes/address.js
const router = require('express').Router();
const {Address} = require('./routeActions');
module.exports = () => {
    router.post('/', Address.add);
    return router;
};

// ./routes/routeActions/index.js
const Address = require('./user');

module.exports =  {
  Address,
};

// ./routes/routeActions/address.js
module.exports = Address = {
    add: (req,res) => {....}
};

问题是我在add()函数中的VS代码中有一个断点,但是唯一遇到的问题是路由的定义,而不是实际的处理程序。我会使模块过于复杂吗?如何获取要调用的处理程序,以便对其进行调试?

1 个答案:

答案 0 :(得分:0)

有两个修复方法。

添加路由定义时,请运行导出的功能。

const Address = require('./address')();

或者在导出路由定义时,只需从文件中导出路由器即可。

module.exports = router;不是module.exports = () => {routeHandlers.... return router}