Asg*_*ani 0 node.js sequelize.js
所以,我对续集有点陌生。以前(我不知道可能是旧版本还是其他一些代码)console.log会打印整个对象及其所有元数据属性,但现在它打印[object SequelizeInstance:users].
我曾尝试使用raw:true返回 [object Object]的属性(以逃避元数据地狱),然后用util.inspect它包装它以打印它。
代码:
User.findOne({
attributes : [
[sequelize.fn('max', sequelize.col('id')), 'id']
],
raw: true //if enabled
})
.then(function(user){
//returns [object SequelizeInstance:users] or if raw:true then [object Object]
console.log("User object is "+user);
//both are printed easily with this
console.log(util.inspect(user,false,null));
//OR
console.log(JSON.stringify(user, null, 4))
})
Run Code Online (Sandbox Code Playgroud)
这是记录用户对象的唯一方法还是我错过了什么,因为以前我只能console.log(user)获取所有数据(元数据地狱)?
第一个 Diff b/w ( raw : true ) AND ( raw : false or nothing ):
// When raw : true --> Will return plain json object nothing added from sequlize
console.log("User object is "+user);
// When raw : false --> Will return sequlize object , so that you can perform verious opreation upon them
console.log("User object is "+user);
user.update({ name : 'New Name' }) // <-- Like this , you dont need to define where , coz its already object that is returned by sequlize
Run Code Online (Sandbox Code Playgroud)
你得到 [Object Object] 和 [object SequelizeInstance:users] 的原因是:
console.log("User object is "+user); // Will show [Object Object] cos you are appending object with string
console.log("User object is " , user); // This will print out whole object clearly
Run Code Online (Sandbox Code Playgroud)