gpt4 book ai didi

javascript - Express.js - 中间件 - 不执行 next()

转载 作者:行者123 更新时间:2023-12-02 22:51:24 26 4
gpt4 key购买 nike

我正在尝试执行一个具有 next() 的 post 函数;在代码中间,所以我从另一个文件导出函数的定义并尝试从 Express 路由器调用它。但它没有执行。

--编辑

我已经尝试了上面建议的常规定义,但它在“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+'');

注册Control.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));

};

谢谢!

最佳答案

而不是

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

也许可以尝试一下

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

就像您在上面的 forgotPassword route 所做的那样。

关于javascript - Express.js - 中间件 - 不执行 next(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com