同じファイルの中に二つのSchemaを定義していて、 module.exports が上手くいかなくて悩んだのですが。
参考: Node.js – exportsとmodule.exportsで関数を公開する – KeruuWeb
module.exportsは単一のモジュールを公開するときに使います。
OK
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// userId(_id), description, duration, and optionally date
var logSchema = new Schema({
  description: {type: String, required: true},
  duration: {type: Number, required: true},
  date: {type: Date}
});
var userSchema = new Schema ({
  username: {type: String, required: true},
  _id: {type: Number, required: true, unique: true},
  logs: [logSchema]
});
// これだとうまくいく
exports.log = mongoose.model('log', logSchema);
exports.user = mongoose.model('user', userSchema);NG
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// userId(_id), description, duration, and optionally date
var logSchema = new Schema({
  description: {type: String, required: true},
  duration: {type: Number, required: true},
  date: {type: Date}
});
var userSchema = new Schema ({
  username: {type: String, required: true},
  _id: {type: Number, required: true, unique: true},
  logs: [logSchema]
});
// 上手くいかない
module.exports = mongoose.model('log', logSchema);
module.exports = mongoose.model('user', userSchema);よく考えたらそうよねと…同じmodule.exportsに2回代入してるものね。
 
0 件のコメント:
コメントを投稿