当前,我的路线文件的设置如下:
const logoutHelper = function (request, response) {
if (request.session) {
console.log("User '" + request.session.username + "' logged out.");
request.session.destroy(function (err) {
if (err) {
return next(err);
} else {
return response.redirect('/');
}
});
}
}
// Logout user and delete the session object
app.get('/logout', logoutHelper);
如何将logoutHelper函数移至同一目录中的另一个文件?我想将帖子拆分并将路由分成不同的文件,因为我的原始route.js太大了。
答案 0 :(得分:2)
在新文件中:
const logoutHelper = function (request, response) {
if (request.session) {
console.log("User '" + request.session.username + "' logged out.");
request.session.destroy(function (err) {
if (err) {
return next(err);
} else {
return response.redirect('/');
}
});
}
}
module.exports = {
logoutHelper: logoutHelper
};
在您的路由文件中:
const Helpers = require('<helper file>');
// Logout user and delete the session object
app.get('/logout', Helpers.logoutHelper);
还有其他需要注意的地方,您正在使用next
,但未在回调函数中定义它。您可能需要将其添加为logoutHelper函数的第三个参数。
我还假设您未使用es6-,如果您使用的是ES6,则可能可以清理该导出对象。