在NodeJS中导出函数

时间:2018-11-25 19:43:05

标签: node.js

我主要使用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) => {

有人可以帮助我理解相同的原因吗?

1 个答案:

答案 0 :(得分:1)

要使用对象分解作为const { clearCache },您需要更改模块。导出从module.exports = clearCache更改为module.exports = { clearCache }