我重用了一个使用mongodb的项目About Node and Passport,其中一个模式定义如下,在user.js文件中
var mongoose = require('mongoose');
var userSchema = mongoose.Schema({
local : {
email : String,
password : String,
},
facebook : {
id : String,
token : String,
email : String,
name : String
},
twitter : {
id : String,
token : String,
displayName : String,
username : String
},
google : {
id : String,
token : String,
email : String,
name : String
}
});
module.exports = ('User', userSchema);
因为我正在使用mysql,所以我试图保留该对象结构,用于代码的其余部分。
那么如何定义这样的对象,以便能够实例化它,然后像下面一样处理它:
var User = require('../app/models/user');
var newUser = new User();
newUser.local.email = "babab";
newUser.local.password = "bababab";
可能是一个小问题,但我对javascript对象的处理有点迷失。
答案 0 :(得分:1)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
您正在寻找的是javascript原型
编辑:这是一篇专门针对节点的文章, http://howtonode.org/prototypical-inheritance
答案 1 :(得分:0)
关注@kirinthos,会出现各种解决方案。我选择最基本的(我认为),但欢迎评论和改进:
对象定义
module.exports = Object({
id : String,
local : {
email : String,
password : String,
},
facebook : {
id : String,
token : String,
email : String,
name : String
},
twitter : {
id : String,
token : String,
displayName : String,
username : String
},
google : {
id : String,
token : String,
email : String,
name : String
}
});
对象instancitation:
var User = require('../app/models/user');
var newUser = Object.create(User);
newUser.local.email = "babab";
newUser.local.password = "bababab";