0

如您所知,MongooseJS 有一个可用的“默认”属性。例如,如果我想要我的对象上的 Date 属性,并且我希望该日期自动默认为创建记录的时间,我将在架构中将其定义为:

var myObject = mongoose.Schema({
  date: {type: Date, default: Date.now}
});

现在,在 CoffeeScript 中这样做的问题是它default是 JavaScript 中的保留关键字,所以 CoffeeScript 编译器会自动default用双引号括起来,所以这段 CoffeeScript 代码:

myObject = mongoose.Schema
    date:
        type: Date
        default: Date.now

编译为:

var myObject;
myObject = mongoose.Schema({
    date: {type: Date, "default": Date.now}
});

这会导致default参数无法按预期工作。也许我错过了一些东西,但我尝试过的一切都不起作用。保存记录时我不需要手动设置日期,因为default关键字已经提供了此功能。

有谁知道如何解决这个问题?

4

2 回答 2

1

我不得不承认我讨厌 CoffeeScript 之类的东西,但你可能会通过这样做来解决这个问题:

var schema = {
   type: Date
};

schema["default"] = Date.now;

myObject = mongoose.Schema(schema);
于 2013-01-19T15:51:20.397 回答
0

因此,我的问题的解决方案相当简单,而且是一个菜鸟错误:我忘记在 myObject.find() 中指定要返回的 Date 属性...

于 2013-01-19T17:40:59.090 回答