Javascript node.js mongodb find()将结果发送到数组,但不使用.filter
我试图对从Javascript node.js mongodb find()将结果发送到数组,但不使用.filter,javascript,node.js,mongodb,typescript,Javascript,Node.js,Mongodb,Typescript,我试图对从mongodb.find()返回的结果使用Array.filter(), 但它不起作用我遇到以下错误: (TS)类型“{}”上不存在属性“filter” 代码中的主要问题是,使用异步函数作为常规函数返回结果。异步函数返回一个承诺或接受回调,该回调在异步操作完成时调用。回调是回调地狱,所以最好使用ES7中添加的Promissions或async/await特性 固定代码,看起来可能是这样的: function find(collectionName: string, filter: an
mongodb.find()
返回的结果使用Array.filter()
,
但它不起作用我遇到以下错误: (TS)类型“{}”上不存在属性“filter”
代码中的主要问题是,使用异步函数作为常规函数返回结果。异步函数返回一个承诺或接受回调,该回调在异步操作完成时调用。回调是回调地狱,所以最好使用ES7中添加的Promissions或
async/await
特性
固定代码,看起来可能是这样的:
function find(collectionName: string, filter: any = {}) {
const MongoClient = require('mongodb').MongoClient;
let url = "mongodb://localhost:27017/test";
return MongoClient
.connect(url)
.then(db => db.collection(collectionName).find(filter, { _id: false }))
.then(rs => rs.toArray())
.finally(() => db.close());
}
注意,目前,find
函数不接受callback
参数,它返回一个承诺,所以要在调用代码时使用result,您应该创建一个承诺链:
find(...)
.then(results => // TODO: use results here)
.catch(err => // TODO: process error here);
代码中的主要问题是,使用异步函数作为常规函数返回结果。异步函数返回一个承诺或接受回调,该回调在异步操作完成时调用。回调是回调地狱,所以最好使用ES7中添加的Promissions或
async/await
特性
固定代码,看起来可能是这样的:
function find(collectionName: string, filter: any = {}) {
const MongoClient = require('mongodb').MongoClient;
let url = "mongodb://localhost:27017/test";
return MongoClient
.connect(url)
.then(db => db.collection(collectionName).find(filter, { _id: false }))
.then(rs => rs.toArray())
.finally(() => db.close());
}
注意,目前,find
函数不接受callback
参数,它返回一个承诺,所以要在调用代码时使用result,您应该创建一个承诺链:
find(...)
.then(results => // TODO: use results here)
.catch(err => // TODO: process error here);