Я использую узел для создания спокойного api и запутался при отправке ответа.отправить ответ и остановить дальнейшее выполнение кода в nodejs
Ниже приведен пример кода:
router.post('/', function(req, res) {
var mobileRegex=/^\d{10}$/;
if (!mobileRegex.test(req.body.mobile)){
res.json({status:'success',type:false,msg:'Invalid Mobile'});
// I dont want further execution of code after this but still it continues and prints data not defined
// OR
return res.json({status:'success',type:false,msg:'Invalid Mobile'});
//but works if I specify return before it
}
var data={...};
signupModel.createUser(data,function(err,result){
if(err)
{
res.json({status:'success',type:false,msg:'....'});
}
else
{
res.json({status:'success',type:false,id:'....'});
}
});
Когда я не указываю возвращение во время моей неудачной мобильной связи проверки продолжает дальнейшее выполнение кода и печатает «данные не определено» в консоли, но Invalid мобильное сообщение является JSON правильно отправлять клиенту без ошибок.
Я смущен, что нужно для правильного использования при создании api в nodejs. Моя проблема заключается в том, что запрос не должен обрабатываться после отправки ответа. Также, если конец ответа возвращается, я должен использовать return везде, когда я отправляю ответ json клиенту во всех случаях.
Я видел Nodejs difference between 'res.json(..)' and 'return res.json(..)' нити, но его волнуют промежуточный слой, но в моем случае нет ни
Используйте возврат в любом месте, где вы хотите остановить дальнейшее выполнение промежуточного изделия! И нет необходимости называть его после res.send(), просто «return res.send()» будет работать! – Ali