【问题标题】:Mongoose model custom event猫鼬模型自定义事件
【发布时间】:2022-01-26 19:15:03
【问题描述】:

我正在寻找将事件附加到我的猫鼬模型/模式的正确方法。我的示例模型:

currency.js

var mongoose = require('mongoose');
var currencySchema = new mongoose.Schema({
    _id: {
    type: String,
    required: true,
    unique: true
  },
  name: {
    type: String,
    trim: true
  }
});

var Currency = mongoose.model('Currency', currencySchema);
module.exports = Currency;

如何正确附加 EventEmitter 以便我可以发出事件并正确捕获它?

Currency.findOne({'name': name}, function (err, currency) {
    currency.emit("up","Event sent");
    callback(err, wallet);
});

【问题讨论】:

    标签: javascript node.js mongoose event-handling dom-events


    【解决方案1】:

    你不能。

    EventEmitter 需要包含无法存储在 MongoDB BSON 中的函数和另一种类型的数据。允许的类型如下:

    1. MinKey(内部类型)
    2. 数字(整数、长整数、双精度数)
    3. 符号、字符串
    4. 对象
    5. 数组
    6. BinData
    7. 对象ID
    8. 布尔值
    9. 日期、时间戳
    10. 正则表达式
    11. MaxKey(内部类型)

    MongoDB 文档中的更多信息:BSON types

    【讨论】:

    • 那么我应该将事件猫鼬模型包装在其他对象中并将发射器附加到那里吗?
    • 虽然他并不想在数据库中存储事件处理逻辑。
    猜你喜欢
    • 2013-09-22
    • 2018-01-21
    • 2021-02-23
    • 1970-01-01
    • 2014-02-11
    • 2021-08-19
    • 2014-08-04
    • 2017-11-20
    • 1970-01-01
    相关资源
    最近更新 更多