事先定义对象的结构

时间:2014-08-20 20:44:39

标签: javascript mysql mongodb object

我重用了一个使用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对象的处理有点迷失。

2 个答案:

答案 0 :(得分:1)

答案 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";