我正在使用Node.Js和MongoDb作为后端服务。我的收藏集中有4个文档,每个文档都有3个字段,分别为_id
,Name
和Image
。我只想获取Json格式的数据。
但是它显示出如下错误:
这是我的代码:
var express = require('express');
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.post('/offers',(req, res) => {
MongoClient.connect(url, (err, db) => {
if(err) throw err;
var obj = req.body.place;
var dbo = db.db('Tiffino_db');
dbo.collection("Offers")
.find({ Name: obj },{ projection: { _id: 0 } })
.toArray((err, result) => {
result.forEach((err, doc) => {
if (err) {
console.log("Error:", +err);
}
else {
res.json({'Name':doc.Name},{'Image':doc.Image});
}
});
});
});
});
请让我知道我在上面的代码中做错了什么。
答案 0 :(得分:0)
尝试一下可能会对您有所帮助
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection("Offers").find({}).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
答案 1 :(得分:0)
查看此页面http://mongodb.github.io/node-mongodb-native/2.2/api/Collection.html#find,主要区别是您对forEach函数的使用应如下所示:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.post('/offers',(req, res) => {
MongoClient.connect(url, (err, db) => {
if(err) throw err;
var obj = req.body.place;
var dbo = db.db('Tiffino_db');
dbo.collection("Offers")
.find({ Name: obj },{ projection: { _id: 0 } })
.toArray((err, result) => {
result.forEach((doc) => { // <-- removed err in forEach's fat arrow
if (err) {
console.log("Error:", +err);
}
else {
res.json({'Name':doc.Name},{'Image':doc.Image});
}
});
});
});
});
不确定如何生成NaN,但是forEach的回调第一个参数无疑是数组中的实际元素。这也可能对toArray隐藏错误。
让我知道是否有帮助。
答案 2 :(得分:0)
您需要摆脱“ result.forEach”结果已经在数组中。 res.json({'Name':doc.Name},{'Image':doc.Image})=> res.json(结果)