[可能是都柏林人]
我的users.js
文件中有以下函数,它可以正常工作。 请参见下面的代码:
const redirectLogin = (req, res, next) =>{
if(!req.session.userId) {
return res.redirect('/user_login');
}else {
next();
}
};
const redirectHome = (req, res, next) =>{
if(req.session.userId) {
return res.redirect('/dashboard');
}else {
next();
}
};
当我尝试导出这两个函数以便可以在其他文件(例如app.js)中使用它们时,它返回以下错误:
//users.js
module.exports = {
redirectLogin: redirectLogin(),
redirectHome: redirectHome()
}; //ERROR IS HERE
//and in
//app.js
const usersRouter = require('./routes/users.js'); //Import and Use : Users Router
app.use(usersRouter);
users.redirectLogin();
TypeError: Cannot read property 'session' of undefined
at redirectLogin (C:\inetpub\wwwroot\mymindmapper\routes\users.js:38:13)
at Object.<anonymous> (C:\inetpub\wwwroot\mymindmapper\routes\users.js:343:20)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Module.require (internal/modules/cjs/loader.js:1026:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (C:\inetpub\wwwroot\mymindmapper\app.js:46:21)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
[nodemon] app crashed - waiting for file changes before starting...
我搞不懂为什么会发生这种事。 请让我知道!
您正在执行函数,而不仅仅是绑定。 因此您的模块。导出将
module.exports = {
redirectLogin: redirectLogin,
redirectHome: redirectHome,
};
速记
module.exports = {
redirectLogin,
redirectHome,
};