Javascript 如何从get请求中提取MongoDB文档的主体?
我试图访问MongoDB中JSON文档主体中的Javascript 如何从get请求中提取MongoDB文档的主体?,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我试图访问MongoDB中JSON文档主体中的Question字段。当我运行GET请求时,我得到如下内容: { "_readableState": { "objectMode": true, "highWaterMark": 0, "buffer": { "head": null, "tail": null, "length": 0 }, "length": 0, "pipes": null,
Question
字段。当我运行GET请求时,我得到如下内容:
{
"_readableState": {
"objectMode": true,
"highWaterMark": 0,
"buffer": {
"head": null,
"tail": null,
"length": 0
},
"length": 0,
"pipes": null,
"pipesCount": 0,
"flowing": null,
"ended": false,
"endEmitted": false,
"reading": false,
"sync": true,
"needReadable": false,
"emittedReadable": false,
"readableListening": false,
"resumeScheduled": false,
"destroyed": false,
"defaultEncoding": "utf8",
"awaitDrain": 0,
"readingMore": false,
"decoder": null,
"encoding": null
},
"readable": true,
"domain": null,
"_events": {},
"_eventsCount": 0,
"_opts": {},
"_destroyed": false
}
我读过关于JSON主体解析器的文章,但补充说这似乎不起作用。这是我的index.js
:
var express = require('express')
var mongojs = require('mongojs')
var bodyParser = require("body-parser");
var app = express()
var db = require('./myDB.js')
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.json())
app.listen(4000, () => console.log('Hello'))
app.get('/getFlashCard', (req, res) => {
let flashID = req.body._id;
db.getFlashCard("Interview Questions", flashID, function(docs) {
console.log("Flashcard retrieved: ", docs);
res.send(docs);
});
});
getFlashCard : function(colName, flashID, callback) {
let data = mongodb.collection("Interview Questions").find({
"_id" : flashID
});
callback(data);
}
这是我的myDB.js
:
var express = require('express')
var mongojs = require('mongojs')
var bodyParser = require("body-parser");
var app = express()
var db = require('./myDB.js')
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.json())
app.listen(4000, () => console.log('Hello'))
app.get('/getFlashCard', (req, res) => {
let flashID = req.body._id;
db.getFlashCard("Interview Questions", flashID, function(docs) {
console.log("Flashcard retrieved: ", docs);
res.send(docs);
});
});
getFlashCard : function(colName, flashID, callback) {
let data = mongodb.collection("Interview Questions").find({
"_id" : flashID
});
callback(data);
}
这里返回的是promise模型,而不是实际解析的数据 getFlashCard:async函数(colName、flashID、回调){ const data=wait mongodb.collection(“采访问题”).find({u id:flashID}); 回调(数据); }
请注意,您并不是在等待
查找
完成,而是将数据
分配给mongodb.collection(“”)。查找
您需要等待find
通过回调(签出)或使用async/await来完成