使用嵌套的javascript对象返回空对象

时间:2019-04-23 12:49:10

标签: javascript node.js mongoose

我有一个正在尝试注册用户的应用程序。在我的中间件实现中,我具有在用户输入名字和姓氏,电子邮件和密码时创建用户对象的代码。但是,当我通过控制台记录新用户对象时,这些属性不会更新。只需控制台记录未定义的firstName即可。在我的架构中,名字,姓氏和电子邮件是嵌套的。

我已经尝试使用点表示法来访问架构中的特定属性。

用户架构

const userSchema = mongoose.Schema({ 
    empID: {
        type: String,
        trim: true
    },
    password: {
        type: String,
        required: true
    },
    userInfo: {
        lastName: {
            type: String,
            trim: true 
        },
        firstName: {
            type: String, 
            trim: true
        }
    },
    contactInfo: {
        email: {
            type: String,
            required: true
            unique: true,
        },
        phone: [{
            home: {
                type: String,
                trim: true
            },
            mobile: {
                type: String,
                trim: true
            }
        }]
    } 

用户路线

router.post('/register', UserController.createUser);

用户控制器

exports.createUser = (req, res, next) => {

console.log("Before creating user");

//Creates new user
let newUser = new User({
   firstName: req.body.firstName,
   lastName: req.body.lastName,
   email: req.body.email,
   password: req.body.password
});

console.log(req.body.firstName);
console.log(newUser.toJSON());

1 个答案:

答案 0 :(得分:0)

由于没有您的app.js文件的示例,因此我在黑暗中拍摄... 尝试使用:

const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

https://www.npmjs.com/package/body-parser