невозможно вернуть результат в контроллере в node js - PullRequest
0 голосов
/ 09 января 2020

Я не получаю результат на контроллере, но получаю результат в модели. Я также возвращаю данные результатов из модели. Я также использовал callback (), но не получил результат.

код модели

//here is my code User.js(model)

var con = require('../config/connection');

module.exports = {
    validateUser: function (username = null, password = null) {
        var sql = "SELECT * FROM users WHERE email_id='" + username + "' AND password = '" + password + "'";
        con.query(sql, function (err, result) {
            return result;
        });
    }
}

//contoller code

const UserModel = require('../model/User');

router.post('/validate', (req, res) => {
    var password = md5(req.body.password);
    var result = UserModel.validateUser(req.body.emailid, password);
    console.log(result);
});

Пожалуйста, дайте мне знать, где я делаю неправильно. Спасибо

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Вы должны использовать обратный вызов или обещание для этого, пожалуйста, проверьте это решение ниже,

 validateUser: function(username = null,password = null,callback){
  var sql = "SELECT * FROM users WHERE email_id='"+username+"' AND password = '"+password+"'";
  con.query(sql, function (err, result) {
    callback(result)
});
}

# contoller code 
const UserModel = require('../model/User');
router.post('/validate',(req,res)=>{
  var password =  md5(req.body.password);
  UserModel.validateUser(req.body.emailid,password,function(result){
      console.log(result);
  });
})

0 голосов
/ 09 января 2020

вы используете callback для вызова запроса db, но в то же время ваша функция проверки также должна быть асинхронной. Попробуйте изменить свой код так:

Пользователь. js (модель)

var con = require('../config/connection');

module.exports = {
    validateUser: function (username = null, password = null, cb = () => {}) {
        var sql = "SELECT * FROM users WHERE email_id='" + username + "' AND password = '" + password + "'";
        con.query(sql, function (err, result) {
            if(err) cb(err);
            else cb(null, result);
        });
    }
}

код контроллера:

const UserModel = require('../model/User');

router.post('/validate', (req, res) => {
    var password = md5(req.body.password);
    UserModel.validateUser(req.body.emailid, password, (err, result) => {
        if(err) console.log("error => ", err);
        else console.log(result);
    });
});

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...