Express.js - Middleware - не выполняется next () - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь выполнить функцию post, которая имеет next ();в середине кода, поэтому я экспортирую определение функции из другого файла и пытаюсь вызвать его из экспресс-маршрутизатора. Но он не выполняется.

- EDIT

Я попробовал обычное определение, как предложено выше, но оно останавливается, когда "next ();"вызывается и возвращает

Cannot POST /registerUser

index.js


[...]
//Definição e Chamada de Componentes

   const userLogin = require('./userControl/accessControl');
   const userRegister = require('./userControl/registerControl');

[...]

var router = express.Router();              // get an instance of the express Router


//Definição das Rotas
//==============================================================================
router.post('/login', userLogin.login);
router.post('/forgotPassword', userLogin.forgotPassword);
router.post('/registerUser', function(req, res, next) {userRegister.registerUser});


app.use('/', router);

// START THE SERVER
// =============================================================================
app.set('env', 'production');
app.listen(port);
console.log('API Listening on Port ' +port+'');

registerControl.js

exports.registerUser = function(req, res, next) {

    var query = "INSERT INTO [user] (name, email, phone, login, password, enabled, profile) VALUES ('example', 'example@abc.si', 'XXXXXXXXXXXX', 'ADMIN', '12345', 1, 'TEST')


    global.conn.request()
        .query(query)
        .then(result => {
            var userId = result.recordset[0].id;
            console.log(userId);
            if (result.rowsAffected[0] == 0) {
                res.sendStatus(500);
            }
            else {
                req.body.userId = userId;
                next();
               }

        })
        .catch(err => res.json(err));

}, function(req, res) {
    var query = "INSERT INTO [user_company] (company_id, user_id) VALUES ("+req.body.companyId+", "+req.body.userId+");"

    global.conn.request()
    .query(query)
    .then(result => {

        if (result.rowsAffected[0] == 0) {
            res.sendStatus(500);
        }
        else {
            res.sendStatus(200);
        }
    })
    .catch(err => res.json(err));

};

Спасибо!

1 Ответ

1 голос
/ 30 сентября 2019

Вместо

router.post('/registerUser', function(req, res, next) {userRegister.registerUser});

возможно попробуйте

router.post('/registerUser', userRegister.registerUser);

Простокак вы делали в приведенном выше маршруте forgotPassword.

...