我主要使用React,所以我对NodeJS的需求和导出并不了解
但是无论如何,我正在尝试通过做这样的事情来创建中间件
const { clearHash } = require("../services/cache.js")
const clearCache = async (req, res, next) => {
await next();
clearHash(req.user.id)
}
module.exports = clearCache
我倾向于通过这样的方式导入
const { clearCache } = require("../middlewares/cache.js")
现在,通常我曾经做过的事情(通过在实习生上阅读)是
module.exports = (req, res, next) => {
if (!req.user) {
return res.status(401).send({ error: 'You must log in!' });
}
next();
};
这是可行的,但是我还是反复考虑了一下,发现当我做这样的事情时,我的第一段代码似乎不起作用
app.post('/api/blogs', requireLogin, clearCache, async (req, res) => {
有人可以帮助我理解相同的原因吗?
答案 0 :(得分:1)
要使用对象分解作为const { clearCache }
,您需要更改模块。导出从module.exports = clearCache
更改为module.exports = { clearCache }