相关疑难解决方法(0)

与蓝鸟和打字稿的猫鼬承诺

我正在使用nodejs/typescript和mongodb数据库开发一个应用程序.要查询数据库,我使用的是mongoose.

我刚刚阅读了mongoose文档中有关如何插入外部promise库的文章,它非常简单:

import mongoose = require("mongoose");
import Promise = require("bluebird");
mongoose.Promise = Promise;
Run Code Online (Sandbox Code Playgroud)

这样做很好.但是我想扩展/覆盖返回的promise的类型.

这是一个函数的例子:

public getModel= () => {
    return MyModel.findOne().exec();
}
Run Code Online (Sandbox Code Playgroud)

这个函数返回一个_mongoose.Promise<MyModel>,我想要返回一只蓝鸟,Promise<MyModel>因为我知道这是一只蓝鸟的承诺.

无论如何都有改变/扩展/覆盖mongoose查询的返回类型?我应该为我的应用编写自定义定义文件吗?任何其他建议将不胜感激.

谢谢 !

mongoose mongodb node.js typescript

5
推荐指数
2
解决办法
4403
查看次数

MongDB找不到Promise类型定义

我创建了一个新项目,安装了几个类型定义(来自DefinitelyTyped)并制作了一个基本src/go.ts文件.

每当我转换代码时,我都会遇到大量TS2304: Cannot find name 'Promise'错误!
./typings/mongodb/index.d.ts被引用Promise,但编译器似乎并没有发现.
请注意我也dt~promise安装了.

屏幕截图 (左侧错误,已安装类型定义,应用程序代码位于右侧)

内容typings.json:

{
  "globalDependencies": {
    "dotenv": "registry:dt/dotenv#2.0.0+20160327131627",
    "express": "registry:dt/express#4.0.0+20160708185218",
    "express-serve-static-core": "registry:dt/express-serve-static-core#4.0.0+20160805091045",
    "mime": "registry:dt/mime#0.0.0+20160316155526",
    "mongodb": "registry:dt/mongodb#2.1.0+20160602142941",
    "mongoose": "registry:dt/mongoose#4.5.4+20160807120805",
    "mongoose-promise": "registry:dt/mongoose-promise#4.5.4+20160720003345",
    "node": "registry:dt/node#6.0.0+20160807145350",
    "promise": "registry:dt/promise#7.1.1+20160602154553",
    "serve-static": "registry:dt/serve-static#0.0.0+20160606155157"
  }
}
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

mongoose mongodb node.js promise typescript

4
推荐指数
1
解决办法
696
查看次数

标签 统计

mongodb ×2

mongoose ×2

node.js ×2

typescript ×2

promise ×1