この質問の最後にコードconsole.log("returnAnonModel -----", returnAnonModel, "typeof : ", typeof returnAnonModel)
があります。returnAnonModel
はオブジェクトです。私はなぜelse条件が当たっていないのか理解していません。オペランドがオブジェクトであるかどうかをif条件が検出しない理由を知らない
まず、私はそれがログに記録するものをお見せしましょう:
returnAnonModel ----- { _id: 57d0d00c50ed1a2421749a69,
__v: 0,
usefulness: [],
reviews: [] } typeof : object
質問は単純です。オブジェクトが表示されますが、明らかにif条件のObject.keys(returnAnonModel).length > 0
が真ではありません。オブジェクトの長さは4ではいけませんか?私はその中にコンソールを見るべきではないでしょうか? console.log("***********Anon USER SEARCHING*********************************")
が
コード表示されません。
var modelType = undefined;
Anon.findOne({_id : app.locals.user._id})
.then(function(returnAnonModel){
console.log("returnAnonModel -----", returnAnonModel, "typeof : ", typeof returnAnonModel)
if(err) console.log(err);
if(Object.keys(returnAnonModel).length > 0){
console.log("***********Anon USER SEARCHING*********************************")
modelType = Anon
userOrAnonArr()
}else{
console.log("***********USER USER SEARCHING*********************************")
modelType = User
userOrAnonArr(modelType)
}
function userOrAnonArr(modelType){
console.log("modelType: ", modelType, " app.locals.user._id : ", typeof app.locals.user._id)
modelType.findOne({_id : app.locals.user._id}, function(err, returnUser){
if(err) console.log(err);
console.log("returnUser : ", returnUser)
を何か他のものは奇妙です: console.log("Object.keys(returnAnonModel).length", Object.keys(returnAnonModel).length)
、それはそう長さをObject.keys(returnAnonModel).length 10
を返します。 私はこれを行うことにより、対象物の長さをテストしてみました私はmongooseがプロパティを追加すると思います。
が、私は
console.log("Object.keys(returnAnonModel).length", Object.keys(returnAnonModel).toObject().length)
を行うときには、絶対に何も記録されますありません。どうして?
最後編集
これは動作します。私はこの間、この機能をやろうとしていました。そして、私はなぜそれが以前とは違って今働いているのか分かりません。私はそれがコンソールと関係があると思う。
var modelType = undefined;
Anon.findOne({_id : app.locals.user._id})
.then(function(returnAnonModel){
console.log("*******", returnAnonModel ,"***********88")
// console.log("returnAnonModel -----", returnAnonModel, "typeof : ", typeof returnAnonModel)
// console.log("Object.keys(returnAnonModel).length", Object.keys(returnAnonModel.toObject()).length)
// console.log("returnAnonModel.toObject()---", returnAnonModel.toObject())
if(returnAnonModel){
modelType = Anon;
userOrAnonArr(modelType);
console.log("*************Anon user found*********************");
}else{
modelType = User;
userOrAnonArr(modelType);
console.log("*************Anon user NOT found*************")
}
オブジェクトには長さがありません(あなたがそれを与えない限り)、あなたはArrayを考えています - ああ、待って、Object.keys(yourobject) 'は長さを持ちます!どのくらい奇妙な –
'.toObejct'は何ですか? –
'if(err)console.log(err);' - errはどこに定義されていますか? –