繁体   English   中英

我的mongodb返回数组为空[]

[英]My mongodb return the array empty []

我正在研究使用Node.js,AngularJS,Express和MongoDB使用MEAN堆栈构建完整堆栈的JavaScript应用程序。

我在第三部分中,必须检索数据库中的所有酒店。

在浏览器中输入http://本地主机:3000 / api / hotels /时,我的数据库返回一个空数组,但hotel.data.json文件已满。

我还尝试了复制section5老师的最后作业,但结果相同,我的数据库为空[]。 这是hotels.controllers文件的代码:

 var mongoose = require('mongoose'); var Hotel = mongoose.model('Hotel'); module.exports.hotelsGetAll = function(req, res) { console.log('GET the hotels'); console.log(req.query); var offset = 0; var count = 5; if (req.query && req.query.offset) { offset = parseInt(req.query.offset, 10); } if (req.query && req.query.count) { count = parseInt(req.query.count, 10); } Hotel .find() .skip(offset) .limit(count) .exec(function(err, hotels) { console.log("Found hotels", hotels.length); res .json(hotels); }); }; module.exports.hotelsGetOne = function(req, res) { var id = req.params.hotelId; console.log('GET hotelId', id); Hotel .findById(id) .exec(function(err, doc) { res .status(200) .json(doc); }); }; module.exports.hotelsAddOne = function(req, res) { console.log("POST new hotel"); var db = dbconn.get(); var collection = db.collection('hotels'); var newHotel; if (req.body && req.body.name && req.body.stars) { newHotel = req.body; newHotel.stars = parseInt(req.body.stars, 10); collection.insertOne(newHotel, function(err, response) { console.log("Hotel added", response); console.log("Hotel added", response.ops); res .status(201) .json(response.ops); }); // console.log(newHotel); // res // .status(200) // .json(newHotel); } else { console.log("Data missing from body"); res .status(400) .json({ message: "Required data missing from body" }); } }; 

谢谢回复。

这是路线文件:

 var express = require('express'); var router = express.Router(); var ctrlHotels = require('../controllers/hotels.controllers.js'); // Hotel routes router .route('/hotels') .get(ctrlHotels.hotelsGetAll); router .route('/hotels/:hotelId') .get(ctrlHotels.hotelsGetOne); router .route('/hotels/new') .post(ctrlHotels.hotelsAddOne); module.exports = router; 

我的console.log()告诉:

 GET /api/hotels Requested by: undefined GET the hotels {} (node:2780) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library ins null [] Found hotels 0 

我有一个包含所有酒店的hothel-data.json文件,当教授连接到db类型mongod时,他在命令提示符下显示了视频,但是他给了我一个错误,所以当我插入db类型时:mongod- -dbpath =数据。

我有一个主文件夹,里面有一个API文件夹,里面有3个文件夹。

1个CONTROLLERS文件夹,带有hotels-controllers.js,2个DATA文件夹,带有db.js,dbconnection.js,hotel-data.json,hotels.model.js,以及3个ROUTES文件夹,带有index.js。

我解决了导入hotel-data.json文件的问题,现在可以了,当输入ocalhost时:3000 / api / hotels我看到了所有的hotel。

不管怎么说,还是要谢谢你。

极光

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM