首页 > 解决方案 > Sequelize 作为 express JS 中的函数总是返回 isFulfilled 和 isRejected false

问题描述

我有一个这样的帮手

let connection     = require('./connection');
const Sequelize    = require('sequelize');
const sysUserModel = require("./models/sys_user");
const Sys_user     = sysUserModel(connection, Sequelize);
let queryUtils     = {
    getOldPassw: function (SYSUSER_ID) {
         return Sys_user.findOne(
             {
                 attributes: ['SYSUSER_PASSW'],
                 where     : {
                     SYSUSER_ID: SYSUSER_ID
                 }
             }
         ).then(function (row) {
            return row.dataValues.SYSUSER_PASSW;
    });
    }

};
exports.data       = queryUtils;

这是我的控制器

let queryUtils     = require('../queryUtils');
let changePassword = function (req, res) {
    let oldPass       = queryUtils.data.getOldPassw('1010001');
    return res.send(oldPass);
};
module.exports = {
    changePassword
};

当我运行我的代码时,如下所示 errorRestClient

这是我的 控制台

你愿意帮我解决这个案子吗?非常感谢

标签: node.jsexpresssequelize.js

解决方案


您正在从您的getOldPassw函数中返回一个承诺,因此您需要对其进行操作。目前,您将承诺发送给客户端,而不是承诺解析为的值。

let changePassword = function (req, res) {
    queryUtils.data.getOldPassw('1010001')
        .then(oldPass => res.send(oldPass))
        .catch(err => {
            // Always good to handle errors!
            console.error(err);
            res.sendStatus(500);
        });
};

推荐阅读