同じファイルの中に二つの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 件のコメント:
コメントを投稿