类型错误.then未定义

时间:2018-02-14 07:37:23

标签: node.js express

我使用节点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;
    });
}

3 个答案:

答案 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;
                });
           });

    }