Reputation: 796
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
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
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
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