Экспорт актуальных функций для разных маршрутов в разные файлы - PullRequest
0 голосов
/ 28 мая 2019

В настоящее время мой файл маршрутов настроен так:

    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 стал слишком большим.

1 Ответ

2 голосов
/ 28 мая 2019

В вашем новом файле:

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 - вы, возможно, можете очистить этот объект экспорта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...