Tag: plugins

在Mongoose插件中添加字段给出“TypeError:架构pathCreatedBy.type”的无效值

我试图做一个CreatedBy Mongoose插件,但是当试图使用ObjectId作为字段types时,它给了我( "account"是另一个定义的集合已经): TypeError: Invalid value for schema path `CreatedBy.type` 这里是插件代码: mongoose = require 'mongoose' module.exports = exports = updatedByPlugin = (schema, options) -> schema.add CreatedBy: type: mongoose.Schema.Types.ObjectId ref: "account" schema.pre "save", (next) -> @CreatedBy = options.accountId next() return schema.path("CreatedBy").index options.index if options and options.index return 那么如何修改ref值使其工作?

创build一个支持callback和承诺的Mongoose插件

我有一个Mongoose插件,目前只支持callback,我打算将其发布到npmjs,但我首先想确保它的工作方式就像现有的Mongoose函数/方法,它支持callback函数和一些内置的promise ,而你也可以指定你自己的承诺库 。 我想知道在我的库中实现相同function的最好方法是什么,这意味着我怎样才能同时支持callback和承诺? 我发现了一个类似的SO线程 ,但这是特定于蓝鸟,即使我喜欢使用,Id喜欢不承担它将被使用。 (另外,这篇文章看起来可能会过时,因为我nodeify在bluebird API文档中findnodeify 我想我可以只是做一些基本的逻辑,看看是否提供了一个函数作为参数之一,如果是的话,然后执行callback,如果没有,然后返回一个承诺…但我确定这是一个更简单的方法来做那。 此外,对于承诺,当我做出承诺的时候,我应该使用那些交给插件的Mongoose对象中的Promise ? 含义: module.exports = Mongoose => { // Just verifying, should I use this?.. const Promise = Mongoose.Promise return Mongoose.model( 'Foobar', new Mongoose.Schema({ /* … */ }) ) } 更新 关于最后一个问题,关于Promise对象在返回promise时引用什么,我尝试使用Mongoose.Promise如上所述,代码如下: module.exports = Mongoose => { const Promise = Mongoose.Promise const Schema = Mongoose.Schema const […]