无法使用“in”运算符在中搜索“_id” [英] Cannot use 'in' operator to search for '_id' in

查看:820
本文介绍了无法使用“in”运算符在中搜索“_id”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  / webroot / 

我尝试使用mongoose和express来获取现有的用户文档。 api.domain.com/production/node_modules/mongoose/lib/document.js:162
if(obj&'_id'in obj)continue;
^
TypeError:无法使用'in'运算符在account.document._buildDoc(/webroot/api.domain.com/production/node_modules/mongoose)中的Account
中搜索'_id' /lib/document.js:162:27)
at model.Document(/webroot/api.domain.com/production/node_modules/mongoose/lib/document.js:67:20)
at model.Model(/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:33:12)
在新模型(/webroot/api.domain.com/production/node_modules/ mongoose / lib / model.js:1663:11)
在Object.model(/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:1662:14)
在Object.findOrCreateOneForTwitter(/webroot/api.domain.com/production/models/account.coffee:60:17)
at module.exports.callback.error(/webroot/api.domain.com/production/ endpoints / twitter.coffee:67:34)
在Twitter.get(/webroot/api.domain.com/production/node_modules/ntwitter/lib/twitter.js:85:7)
在passBackControl (/webroot/api.domain.com/production/node_modules/oauth/lib/oauth.js:361:11)
在IncomingMessage.exports.OAuth._performSecureRequest.request.on.callbackCalled(/ webroot / api。 domain.com/production/node_modules/oauth/lib/oauth.js:380:9)

有什么已知的修复?感谢。

解决方案

此错误不是Mongoose专有的;它将显示 obj 不是一个对象,但是一个字符串例如:

  var obj ='Account'; 
'id'in obj;
// TypeError:不能使用'in'运算符在帐户
中搜索'id'

假设它不是Mongoose问题,你会在这里寻找某个地方:

 在Object.findOrCreateOneForTwitter 
/webroot/api.domain.com/production/models/account.coffee:60:17)


I'm trying to get an existing user document using mongoose with express but I only get this:

/webroot/api.domain.com/production/node_modules/mongoose/lib/document.js:162
      if (obj && '_id' in obj) continue;
                          ^
TypeError: Cannot use 'in' operator to search for '_id' in Account
    at model.Document._buildDoc (/webroot/api.domain.com/production/node_modules/mongoose/lib/document.js:162:27)
    at model.Document (/webroot/api.domain.com/production/node_modules/mongoose/lib/document.js:67:20)
    at model.Model (/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:33:12)
    at new model (/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:1663:11)
    at Object.model (/webroot/api.domain.com/production/node_modules/mongoose/lib/model.js:1662:14)
    at Object.findOrCreateOneForTwitter (/webroot/api.domain.com/production/models/account.coffee:60:17)
    at module.exports.callback.error (/webroot/api.domain.com/production/endpoints/twitter.coffee:67:34)
    at Twitter.get (/webroot/api.domain.com/production/node_modules/ntwitter/lib/twitter.js:85:7)
    at passBackControl (/webroot/api.domain.com/production/node_modules/oauth/lib/oauth.js:361:11)
    at IncomingMessage.exports.OAuth._performSecureRequest.request.on.callbackCalled (/webroot/api.domain.com/production/node_modules/oauth/lib/oauth.js:380:9)

Is there any known fix for that? Thanks.

解决方案

This error is not specific to Mongoose; it would show if obj is not an object, but a string for instance:

var obj = 'Account';
'id' in obj;
// TypeError: Cannot use 'in' operator to search for 'id' in Account

Assuming that it's not a Mongoose issue, you'd be looking somewhere here:

at Object.findOrCreateOneForTwitter 
    (/webroot/api.domain.com/production/models/account.coffee:60:17)

这篇关于无法使用“in”运算符在中搜索“_id”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆