Я использую узел v8.11.1 с express 4.16.3 и postgresql в качестве базы данных, поэтому я использую модуль pg
.Я новичок в обещаниях, а затем.Это мой код, который должен работать
маршрут
router.post('/save',
(req, res)=>{
req.checkBody('email', 'put email').notEmpty().trim();
let errors = req.validationErrors();
if (errors) {
req.session.msgs = errors;
res.redirect('/signup');
}
else {
var user = {email:req.body.email};
signup.signup(user)
.then((res)=>{
req.session.msgs = [{msg: res}];
res.redirect('/events');
},
(rej)=>{
res.redirect('/signup');
req.session.msgs = [{msg: 'err'}];
}
)
.catch((err)=>{
res.redirect('/signup');
req.session.msgs = [{msg: 'err'}];
});
}
});
функция
const signup = (user) => {
return new Promise((res, rej)=>{
pool.connect( //connect to db
(err, client, done) => {
if (err) {
return rej(err); //rej
}
client.query('insert into user (email) values($1)',[user.email]);
done();
res(user.email);
}// pool anonumous funct
);//pool connect
})//promise
};
exports.signup = signup;
Итак, ядумаю, это должно сработать сразу, но я получаю err TypeError: res.redirect is not a function
, который относится к моему маршруту, в этой части
signup.signup(user)
.then((res)=>{
req.session.msgs = [{msg: res}];
res.redirect('/events'); // <= REFERS HERE
},
Чего мне не хватает?Почему это не функция?Как это исправить?Спасибо