Javascript ';未定义';使用MongoDB+;快车
当我在控制台上使用Javascript ';未定义';使用MongoDB+;快车,javascript,mongodb,express,http,undefined,Javascript,Mongodb,Express,Http,Undefined,当我在控制台上使用console.log(this.data)打印客户端接收到的对象时,我得到了未定义的,因此我无法访问data.body来打印存储在数据库中的数据。 打印服务器端获取正确的json对象 我正在使用HTTP状态200发送对象。强制执行错误请求(res.status(400).json(docs);)将在错误中正确打印json正文 client.ts getEvents() { return new Promise(resolve => { this.ht
console.log(this.data)
打印客户端接收到的对象时,我得到了未定义的,因此我无法访问data.body
来打印存储在数据库中的数据。
打印服务器端获取正确的json对象
我正在使用HTTP状态200发送对象。强制执行错误请求(res.status(400).json(docs);
)将在错误中正确打印json正文
client.ts
getEvents() {
return new Promise(resolve => {
this.http.get('http://www.mywebsite.com:8080/api/objects')
.pipe(map(data => { })).subscribe(data => {
this.data = data;
console.log(this.data);
});
});
}
server.js
app.get("/api/objects", function (req, res) {
db.collection(COLLECTION).find({})
.toArray(function (err, docs) {
if (err) {
handleError(res, err.message, "Failed.");
} else {
console.log(docs);
res.status(200).json(docs);
}
});
});
确保使用某种类型的主体解析器,如主体解析器或express.json():
把它放在你的路线之前 确保使用某种类型的主体解析器,如主体解析器或express.json():
把它放在你的路线之前 我可以使用app.use(bodyParser.json())进行确认;在代码的开头,我可以使用app.use(bodyParser.json())进行确认;在代码的开头
app.use(express.json())