我在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代码中有一个断点,但是唯一遇到的问题是路由的定义,而不是实际的处理程序。我会使模块过于复杂吗?如何获取要调用的处理程序,以便对其进行调试?
答案 0 :(得分:0)
有两个修复方法。
添加路由定义时,请运行导出的功能。
const Address = require('./address')();
或者在导出路由定义时,只需从文件中导出路由器即可。
module.exports = router;
不是module.exports = () => {routeHandlers.... return router}