首先介绍一下这种情况.我有一个填充文档的MongoDB集合.我使用schema.statics来查询特定的行
TweetSchema.statics.maxAndLimit = function(screen_name, cb) {
this.find({
'user.screen_name': screen_name
}).sort({'id_str':1}).select({'id_str':1,'user.statuses_count':1,'user.screen_name':1,'_id':0}).limit(1).exec(cb);
};
Run Code Online (Sandbox Code Playgroud)
查询完成后,它将调用回调(cb).
在回调中,我想将值绑定到变量,以便稍后使用它们.这是我似乎无法解决的问题:
console.log(result) == [{id_str:'12346875',user:{statuses_count:500,screen_name:'username'}}]
console.log(result.id_str) == 'undefined'
Run Code Online (Sandbox Code Playgroud)
同样适用于:
console.log(result[0].id_str)
Run Code Online (Sandbox Code Playgroud)
为什么我得不到具体的价值?typeof(结果)表示'对象'.
每个请求更新 我的非严格模式导致Mongoose返回非真实的javascript对象.因此,为了将来参考,我使用的是'schema':
var TweetSchema = new Schema({}, {strict: false});
Run Code Online (Sandbox Code Playgroud)
我不想定义所有内容,因为它是Twitter时间轴对象,因此并不总是相同.
在Stackoverflow和网络上阅读了很多内容后,我仍然在努力让事情发挥作用.
我的挑战:使用Python和urllib2访问我所属的网站的受限制部分.
从我读过的代码应该是这样的:
mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
url = 'http://www.domain.com'
mgr.add_password(None, url, 'username', 'password')
handler = urllib2.HTTPBasicAuthHandler(mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
try:
response = urllib2.urlopen('http://www.domain.com/restrictedpage')
page = response.read()
print page.geturl()
except IOError, e:
print e
Run Code Online (Sandbox Code Playgroud)
打印不打印"http://www.domain.com/restrictedpage",但显示"http://www.domain.com/login",因此我的凭据未存储/处理,我正在重定向.
我怎样才能让它发挥作用?我已经尝试了好几天,并且一直在追求同样的死胡同.我已经尝试了所有我找不到的例子.
我的主要问题是:使用Python和urllib2对网站进行身份验证需要什么?快速提问:我做错了什么?