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 に答える