【发布时间】:2021-11-08 23:39:37
【问题描述】:
我正在尝试使我的程序更加模块化,因为它现在非常混乱。但是每次尝试重构我的代码时,我总是会遇到一堆错误和一个无法运行的程序。
我想要做的是创建多个文件,它们有自己的工作量,如果我需要在另一个文件中的某些内容,我基本上可以“借用”该功能。
我现有代码中的示例:
索引.js
//Routers
const getPostsRouter = require('./routes/getPosts');
app.use('/getPosts', getPostsRouter);
///////////////////////////////////////////////////////////////////////////////////////////////
const authenticateToken = (req, res, next) => {
const authHeader = req.headers['authorization'];
const token = authHeader && authHeader.split(' ')[1]
if (token == null) return res.sendStatus(401);
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => {
if (err) return res.sendStatus(403);
req.user = user
next()
})
}
module.exports = authenticateToken;
然后在我的 getPosts.js 文件中,我希望能够执行类似的操作
const express = require('express');
const router = express.Router();
const db = require('../databaseConnection');
const {authenticateToken} = require('../index')
router.get('/', authenticateToken, async (req, res) => {
await db.query('SELECT * FROM posts',
(err, result) => {
if (err) {
res.send({errorMessage: err});
}
res.send(result);
});
}
});
module.exports = router;
但是当我尝试这个时,我总是得到这个错误:“错误:Route.get() 需要一个回调函数,但有一个 [object Undefined]”,它指向“const getPostsRouter = require('./routes/获取帖子');"在 index.js 中
编辑: 问题在于循环依赖!我需要做的就是删除依赖的一侧,现在一切都按预期工作了!
【问题讨论】:
标签: javascript node.js reactjs express routes