Javascript 预先定义对象的结构

Javascript 预先定义对象的结构,javascript,mysql,mongodb,object,Javascript,Mysql,Mongodb,Object,我在user.js文件中重用了一个使用mongodb的项目,其中模式定义如下 var mongoose = require('mongoose'); var userSchema = mongoose.Schema({ local : { email : String, password : String, }, facebook : { id : String, token : String,

我在user.js文件中重用了一个使用mongodb的项目,其中模式定义如下

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对象处理有点迷茫。

您需要的是javascript原型

编辑:这里有一篇专门针对node的文章,

在@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
    }
});
对象实例引用:

var User = require('../app/models/user');

var newUser = Object.create(User);
newUser.local.email = "babab";
newUser.local.password = "bababab";