-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmodel.js
More file actions
51 lines (41 loc) · 1.25 KB
/
model.js
File metadata and controls
51 lines (41 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/**
* model
* @type {*}
*/
var mongoose = require('mongoose');
// MongoDB
var db = mongoose.connect(process.env.MONGODB);
//autoIndex setting depends on enviroments
var enableAutoIndex = false;
if( process.env.NODE_ENV == 'development'){
enableAutoIndex = true;
}
var Schema = mongoose.Schema;
function validator(v) {
if (v) {
return v.length > 0;
}
return false;
}
// User
var UserSchema = new Schema({
name: { type: String, validate: [validator, "Empty Error"] }
}, { autoIndex: enableAutoIndex });
exports.User = db.model('User', UserSchema);
// Room
var defaultDate = new Date("2012/12/5 15:00");
var RoomSchema = new Schema({
title: { type: String, validate: [validator, "Empty Error"] }
, created: { type: Date, default: defaultDate }
, updated: { type: Date, default: defaultDate }
}, { autoIndex: enableAutoIndex });
exports.Room = db.model('Room', RoomSchema);
// Comment
var CommentSchema = new Schema({
message: { type: String, validate: [validator, "Empty Error"] }
, room_id: { type: String }
, user_id: { type: String }
, user_name: { type: String, validate: [validator, "Empty Error"] }
, created: { type: Date, default: Date.now() }
}, { autoIndex: enableAutoIndex });
exports.Comment = db.model('Comment', CommentSchema);