Shubham Azad
Shubham Azad

Reputation: 796

type error .then is undefined

I am using node js express and calling model from the controller it gives me an error. Type error .then is undefined.This is the code I use. Kindly help, am not aware what is going wrong here

Here is my controller

var Promise    = require('promise');
var user_model = require('../models/user');

exports.get_user = function(req, res) {

return  user_model.get_users().then(function(data){ 
    res.json({
        "StatusCode": 200,
        "ResponseMessage": "All Record are !!!",
        "data": data
        });
    }).catch(function(err) {
        res.json({
             "StatusCode": 200,
             "ResponseMessage": "Error occurd"
        });
    });
}

Here is my model

var connection=require('../config/connection');
exports.get_users = function() {
    connection.query('SELECT * FROM users',function(err,rows ){
        if(err) {
            retrun err;
        }
        return rows;
    });
}

Upvotes: 0

Views: 51

Answers (3)

Ranvijay Yadav
Ranvijay Yadav

Reputation: 36

Type of "get_users" is function, .then works only with Promise object. try returning connection.

var connection=require('../config/connection');
    exports.get_users = function()
    {
       return connection.query('SELECT * FROM users',function(err,rows){
                      if(err){
                          retrun err;
                      }
                      return rows;
                });
           });

    }

Upvotes: 0

Marcelo
Marcelo

Reputation: 1592

Your function getUsers() of the model /models/user should return a promise, so you could use a then method, like this:

exports.get_users = function()
{
    connection.query('SELECT * FROM users',function(err,rows){
        if(err){
            return Promise.reject(err);
        }
        return Promise.resolve(rows);
   });
}

Upvotes: 0

Rahul Sharma
Rahul Sharma

Reputation: 10071

in your code get_users is not returning promise.

 exports.get_users = function () {
        return new Promise((resolve,reject) => {
            connection.query('SELECT * FROM users', function (err, rows) {
                if (err) {
                    reject(err);
                }
                resolve(rows);
            });
        });
    }

Upvotes: 1

Related Questions