无法将参数发送到 JS 中的高阶函数。它没有得到 req 和 res args 的函数
// In router.js
const { getAll } = require('./controller')
router.get('/coordinadores', getAll()('mentor'))
// In controller.js
exports.getAll = (req, res) => {
return (role) => {
var filter = { role }
if (req.user.role == 'mentor') filter = { role, centro: { "$in": req.user.centro } }
Model.find(filter, '-password -role -__v -createdAt -updatedAt -centro').lean().exec()
.then(list => { res.status(200).json({ list }) })
.catch(err => { errorHandler(req, res, err) })
}
}
// Result
// TypeError: Cannot read property 'user' of undefined
这里
router.get('/coordinadores', getAll()('mentor'))
你打电话getAll
没有任何参数。要创建一个 HoF,您应该像这样创建它
const getAll = role => (req, res) => {
// your code
}
然后
router.get('/coordinadores', getAll('mentor'))
这将调用的getAll
函数mentor
,它会返回一个函数的引用,将与被调用req
并res
通过快递
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句