У меня есть эта функция nodejs, которая предназначена для вставки некоторых данных в db, а когда она заканчивается, она должна возвращать «успех» или «отказ».Функция nodejs не возвращает значение
Эта функция находится в файле insert.js
function insert (req,res) {
var d = req.body;
new dbModel({
name: d.dname,
desc: d.desc
}).save(false,function(err){
if (err){
return 'failure';
}else{
return 'success';
}
});
}
module.exports.insert = insert;
Он вставляет данные в БД, но он не возвращает никакого значения.
Это маршрут, который вызывает указанную выше функцию, и это находится в файле routes.js.
router.post('/insert', function(req, res) {
var result = insert.insert(req,res);
res.render('insert',{title: 'insert',message: result});
});
Могу ли я делать что-нибудь не так или это что-то делать с асинхронным характером nodejs.
Пожалуйста, помогите. Благодарю.
EDIT Я попытался как сказал @Salehen Rahman в ответах ниже, но страница не делает и браузер продолжает ожидать ответа от сервера и я пытался войти значение результата внутри обратного вызова и снова нет вывода, кажется, что код внутри функции обратного вызова не запущен. Я проверил db, и данные были вставлены успешно.
Добро пожаловать в чудесный мир ** async **! Вы не можете этого сделать. – SLaks
Используйте обратный вызов для вашего метода 'insert' и передайте' result' этому параметру – Bergi