【发布时间】:2017-07-26 23:36:23
【问题描述】:
我有这个代码:
exports.get_transducer_edit = (req, res) => {
if(req.isAuthenticated()){
Transducer.findById(req.params.id, (err, foundTransducer) => {
if(err){
res.redirect('/en/dashboard');
} else {
res.render('dashboard/transducer_edit-dashboard', {transducer: foundTransducer});
}
});
}else{
req.flash('error','You need to log in to do that');
res.redirect('/dashboard/login');
}
};
它运行没有问题,但是当我在 middleware/index.js 中创建中间件时:
var middlewareObj = {};
middlewareObj.isLoggedIn = function(req, res, next){
if(req.isAuthenticated() ) {
return next();
}
res.redirect('/dashboard/login');
};
module.exports = middlewareObj;
我在这段代码中调用它:
const middleware = require('../middleware');
const Transducer = require('../models/productTransducers');
exports.get_transducer_edit = middleware.isLoggedIn, (req, res) => {
Transducer.findById(req.params.id, (err, foundTransducer) => {
if(err){
res.redirect('/en/dashboard');
} else {
res.render('dashboard/transducer_edit-dashboard', {transducer: foundTransducer});
}
});
};
我做错了什么?请帮忙...
【问题讨论】:
-
这种语法如何工作?
exports.get_transducer_edit = middleware.isLoggedIn, (req, res) => { -
没有,我错了,我刚刚解决了。这是我的控制器。我已经声明了这样的路线:router.get('/en/dashboard/products/transducers/:id/edit',transducer_controller.get_transducer_edit);
标签: node.js express middleware