【发布时间】:2016-04-20 18:21:23
【问题描述】:
我的情况似乎很奇怪。我刚刚开始尝试使用 Typescript,并且正在尝试实现一个与 NodeJS 一起使用的接口。我创建了一个“查找”函数,它返回 MongoDB 集合中的所有结果。但是,结果并没有以我期望的方式返回。例如,下面的代码工作的唯一方法是如果我执行“res.send(err)”,因为该变量包含查询的结果。 “结果”变量返回为未定义。
我想知道的是两个方面:
1) 我做错了什么? 2) 如何让回调正确显示错误和结果?
界面:
interface ICallback{
(error: string, results: string): void;
}
export interface IDatabase{
find(db: string, callback : ICallback) : void;
}
蒙古类
export class MongoDB extends Database implements IDatabase{
//...
find(collection, callback){
db.find().toArray(function(err, docs){
if(err){
callback(err);
}
callback(docs);
});
};
}
节点控制器
exports.findAll = function(req, res) {
//... instantiate new db, connect, get the collection, assign to
// thisColl variable
dbInstance.find(thisColl, function(err, results){
if(err){
return err; //contains the actual results
};
res.send(results); //comes back undefined
});
【问题讨论】:
标签: javascript node.js mongodb oop typescript