【问题标题】:Correct way of using Mongoose in Deno在 Deno 中使用 Mongoose 的正确方法
【发布时间】:2021-04-10 03:00:08
【问题描述】:

在之前的项目中,我使用 NodeJS 和 Mongoose 来处理模式和数据库连接,现在我正在尝试迁移到 Deno,我发现 Deno 还没有 Mongoose 作为其第三方模块。

我看到了参考,好像他们正在使用 NPM 添加猫鼬(这意味着回到 NodeJS 的方式)。我从deno_mongo 找到的架构与我在上一个项目中使用的架构不同。

并且没有示例说明如何使用其他集合 id 作为对当前集合的引用,例如:

userprofileid: {
   type: mongoose.Types.ObjectId,
   ref: "user_profiles"
},

那么如何转换上面的代码呢?

【问题讨论】:

  • mongoose 只是一个 ODM 。 deno 还没有猫鼬。所以没有猫鼬魔法。如果您想要“如何使用关系文档?”。查看官方mongodbdoc。

标签: mongodb mongoose deno


【解决方案1】:

Mongoose 目前不支持 Deno。请参阅此功能请求中的答案:https://github.com/Automattic/mongoose/issues/9056
如那里所述,目前的问题是 Deno 使用 require_optional npm 模块解决了问题,这是 MongoDB 驱动程序内部使用的东西。

第二个问题:

即使没有 require_optional,Deno 目前也没有 polyfill 对于 Node 的加密模块:https://deno.land/std/node/README.md。 MongoDB 驱动程序很难解决这个问题。

看起来已经解决了。特别是因为已经有用于 MongoDB 连接的模块。

如果您可以不用 Mongoose 的 ODM,那么您可以使用 Deno Mongo (https://github.com/denodrivers/deno_mongo)。 这会将您连接到数据库,您可以使用 Mongo 数据库命令直接发送查询。

如果你在 Deno 页面查看第三方模块并搜索 Mongo,你会很遗憾地发现 Mongo DB 目前没有 ODM 模块(https://deno.land/x?query=mongo

【讨论】:

  • 感谢您的回答,请问 Deno Mongo 是否已经支持凭证?上次我尝试在 Deno 中使用 Mongo,他们只能在没有凭据的情况下连接
  • 实际上,我正在使用 Deno 为我的下一个项目收集所有需求。所以我会尽快测试它,并让你知道。
  • 很高兴知道这一点!好的,等你的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 2018-12-02
  • 2016-12-09
  • 1970-01-01
相关资源
最近更新 更多