我使用节点js express并从控制器调用模型它给我一个错误。键入错误.then is undefined。这是我使用的代码。请帮助,我不知道这里出了什么问题
这是我的控制器
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"
});
});
}
这是我的模特
var connection=require('../config/connection');
exports.get_users = function() {
connection.query('SELECT * FROM users',function(err,rows ){
if(err) {
retrun err;
}
return rows;
});
}
答案 0 :(得分:1)
get_users没有返回promise。
exports.get_users = function () {
return new Promise((resolve,reject) => {
connection.query('SELECT * FROM users', function (err, rows) {
if (err) {
reject(err);
}
resolve(rows);
});
});
}
答案 1 :(得分:0)
模型getUsers()
的函数/models/user
应该返回一个promise,所以你可以使用then方法,如下所示:
exports.get_users = function()
{
connection.query('SELECT * FROM users',function(err,rows){
if(err){
return Promise.reject(err);
}
return Promise.resolve(rows);
});
}
答案 2 :(得分:0)
“get_users”的类型是function,.then仅适用于Promise对象。尝试返回连接。
var connection=require('../config/connection');
exports.get_users = function()
{
return connection.query('SELECT * FROM users',function(err,rows){
if(err){
retrun err;
}
return rows;
});
});
}