读取数据并分配给变量
我正在尝试从Mongo DB读取数据并为变量赋值。不起作用。读取数据并分配给变量
var collection = db.get('accesstoken');
collection.find({},{},function(e,docs){
console.log(docs);
var global_token_var = docs.toArray()[0].access_token;
console.log(" global token variable set to " + global_token_var);
});
输出如下
[ { _id: 594aaa17f0db330e70bd6e89, access_token: '76c9b8a60b4f4402bdc7082b945d77899f1282d2', Expires_in: 86400000 } ] undefined (node:1104) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejec tion id: 1): TypeError: Cannot read property 'toArray' of undefined*
所以的console.log(DOC)正确returing JSON对象。但变量仍未定义。 我需要一个变量的access_token。我哪里错了?
对不起,我不能发表评论,但我认为你需要,要求身体解析器,他们有传入的请求一个JSON解析器:
https://www.npmjs.com/package/body-parser
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
还的问题可能与此有关: What does body-parser do with express in nodejs?
多数民众赞成如果您使用快递,如果不是那么我会想象你将不得不以某种方式解析。我使用快递,所以我会推荐套餐。希望即时阅读这个正确的,祝你好运
嗯。不是。在OP误解了文档的情况下,这个问题有一个简单的错误。这个答案与问题无关,如果你真的阅读了评论,问题实际上已经解决了。 –
它已经是一个数组。您正在使用“mongojs”或类似的方法,它已经将'.find()'的结果作为数组返回。 '.toArray()'是“原始”节点驱动程序的一种方法。 –
所以只需简单的'docs [0] .access_token' –
它删除.toArray()后工作。谢谢 。 – chittasec