首页 > 解决方案 > 承诺在节点 module.exports 中返回未定义

问题描述

Promiseundefined在尝试登录时返回routes.js,但在登录时工作正常queries.js。我应该如何更改承诺以正确返回响应routes.js

queries.js

const rsClient = require('./client.js');

const query = {
    one: 'SELECT * FROM my.db'
}

module.exports = {
    rsProdRecs: (req, res) => {
         rsClient.query(query.one)
            .then(res => {
                return res;
            })
            .catch(err => console.log(err));
    }
};

routes.js

var express = require('express');
var router = express.Router();
var queries = require('../queries');

router.get('/', function(req, res, next) {
  const data = queries.rsProdRecs();
  console.log(data)
  res.send(data);
});

module.exports = router;

标签: javascriptnode.jsexpresspromise

解决方案


您是否尝试添加return语句?

rsProdRecs: (req, res) => {
         return rsClient.query(query.one)
            .then(res => {
                return res;
            })
            .catch(err => console.log(err));
    }


推荐阅读