【问题标题】:How to access database using promise with fetch function?如何使用带有 fetch 功能的 promise 访问数据库?
【发布时间】:2020-04-24 19:56:51
【问题描述】:

我正在尝试使用带有 fetch() 函数的 promise 从前端访问 mongo db,但它不起作用。

var Promise = () => (
  new Promise((resolve, reject) => {
    //do something, fetch something....
    //you guessed it, mongo queries go here.
    db.collection('users').find()
    console.log('users');
     .then(function(result){
    var somethingWentWrong = (dataReturned == null);
    (somethingWentWrong)
      ? reject('something messed up')
      : resolve(result);
  })
)

<tr>
<div class="first">
<td class="data">{{ this.firstname}}</td>
</div>
<div class="last">
<td class="data">{{ this.lastname}}</td>
</div>
<div class="email">
<td class="data">{{ this.email }}</td>
</div>
</tr>

【问题讨论】:

  • 这里fetch()在哪里使用??还有它的服务器端编码,但你的帖子说它的前端。有什么错误吗??
  • 而且你真的不应该隐藏全局 Promise 对象。
  • 我刚刚添加了前端代码。谢谢。
  • 你必须为 getUsers 创建一个 RESTAPI 并且它的工作方式类似于基于 node.js 的 api/users/ 然后你必须编写一个控制器,在其中收集所有用户。 getUsers(){ return new Promise((resolve, reject) =&gt; { db.collection("user").findOne({}, (err, result) =&gt; { if (err) throw err; resolve(result); }).catch(error =&gt;{ reject(error) }); }) }

标签: javascript mongodb express promise fetch


【解决方案1】:

让 dataReturned = db.collection('users').find({}, {}).asArray();

new Promise((resolve, reject) => {
    //do something, fetch something....
    //you guessed it, mongo queries go here.

    let dataReturned = db.collection('users').find({}, {}).asArray();

    console.log('users');
    var somethingWentWrong = (dataReturned == null);
    (somethingWentWrong)
      ? reject('something messed up')
      : resolve(dataReturned);
})  

【讨论】:

  • 感谢您的回复。它仍然没有返回任何数据:(
  • 您确定已建立与数据库的连接吗?得到任何错误?需要更多信息
  • 是的,我已经连接了数据库并且它工作正常。没有错误。而且我不明白如何使用 fetch 功能。
猜你喜欢
  • 2020-07-08
  • 2020-10-28
  • 1970-01-01
  • 2019-07-13
  • 2020-06-03
  • 2019-01-15
  • 2012-07-26
  • 2022-07-22
  • 1970-01-01
相关资源
最近更新 更多