如何解决Nodejs 将变量从路由器文件传递到另一个路由器文件
我需要将一个名为 path
的变量从路由器文件 lessonsRouter.js
传递到另一个路由器文件 lessons.js
我的文件夹结构
routes
|
+--lessons.js
|
+--lessonsRouter.js
lessonsRouter.js
const router = require('express').Router();
const lessons = require('./lessons');
router.get('/*/([A-Z][a-z]+)/README.md',(req,res) => {
const path = req.url; // the variable that i need to pass to lessons.js router
// ignore next three lines
const pathSeparate = req.url.split('/');
const LessonTopic = pathSeparate[1].toLowerCase()
const LessonName = pathSeparate[2].match(/[A-Z][a-z]+/g).join('-').toLowerCase();
res.locals.path = path;
res.redirect(`/lessons/${LessonTopic}/${LessonName}`);
});
router.use('/:topic/:name',lessons);
module.exports = router;
lessons.js
const router = require('express').Router();
router.get('/',res) => {
// i want to use variable path from lessonsRouter.js here
});
module.exports = router;
解决方法
我认为您的依赖/导入方向错误。 lessons
应从 lessonsRouter
导入。但是,如果您真的想要这种方式,那么您可以导出一个函数,一旦拥有它,您就可以将路径传递给该函数。
lessonsRouter.js
const lessons = require('./lessons');
router.get('/*/([A-Z][a-z]+)/README.md',(req,res) => {
const path = req.url; // the variable that i need to pass to lessons.js router
lessons(path);
...
});
课程.js
module.exports = (path) => {
router.get('/',res) => {
console.log(path);
});
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。