javascript - 在不同文件中导出不同路由的实际函数

标签 javascript node.js express

目前我的路线文件设置如下:

    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 函数移动到同一目录中的另一个文件?我想拆分帖子并将路线放入不同的文件中,因为我原来的routes.js 太大了。

最佳答案

在您的新文件中:

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 - 如果您使用的是,您可能可以清理该导出对象。

关于javascript - 在不同文件中导出不同路由的实际函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346894/

相关文章:

javascript - 选择文件后更改上传占位符

javascript - 如何获取 Webpack 中每个 block 包含的所有文件(或模块)的列表

angularjs - YouTube 分析 - 创建请求

javascript - 如何在同一台服务器上处理 tcp/ip 原始请求和 http 请求

mongodb - 从 mongoDB 获取计数

javascript - 记住用户输入

javascript - 如何在 Sequelize 中生成 12 位唯一 ID?

node.js - 无法使用 npm 安装 Electron,可能是哪里出了问题?

javascript - 在 Express JS 中上传和调整图像大小时遇到​​问题

javascript - 检查 JavaScript 中的数字