簡體   English   中英

為什么這個 promise 總是返回未定義而不是值

[英]Why this promise is always returning undefined instead of values

我的承諾有問題。 我正在嘗試從 Mongodb 數據庫中獲取數據,並將該數據返回到 function 之外。 mongodb function 被導出,我從另一個文件中調用 function 但我總是不確定。 這是如何管理的? 提前致謝!

帶有 mongo function 的文件:

const mongodb = require("mongodb").MongoClient;
const uri = process.env.DB_CONNECT;
const client = new mongodb(uri, { useNewUrlParser: true, useUnifiedTopology: true });

async function getPoliticians() {
 const data = async () => await client.connect(async err => {
 return await 
  client.db(process.env.DB).collection(process.env.DB_COLLECTION).find().limit(2).toArray()
});
return await data();
}


module.exports = getPoliticians;

使用 mongo function 調用的文件:

const router = require('express').Router();
const mongoF = require('../services/db');

router.get('/get', async (req, res, next) => {
  console.log(await mongoF());
});

module.exports = router;

此控制台日志始終打印undefined

我的承諾有問題。 我正在嘗試從 Mongodb 數據庫中獲取數據,並將該數據返回到 function 之外。 mongodb function 被導出,我從另一個文件中調用 function 但我總是不確定。 這是如何管理的? 提前致謝!

帶有 mongo function 的文件:

const mongodb = require("mongodb").MongoClient;
const uri = process.env.DB_CONNECT;
const client = new mongodb(uri, { useNewUrlParser: true, useUnifiedTopology: true });

async function getPoliticians() {
 const data = async () => await client.connect(async err => {
 return await 
  client.db(process.env.DB).collection(process.env.DB_COLLECTION).find().limit(2).toArray()
});
return await data();
}


module.exports = getPoliticians;

使用 mongo function 調用的文件:

const router = require('express').Router();
const mongoF = require('../services/db');

router.get('/get', async (req, res, next) => {
  console.log(await mongoF());
});

module.exports = router;

此控制台日志始終打印undefined

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM