我的mongodb返回数组空[]

时间:2017-08-08 14:25:42

标签: javascript mongodb mongoose database

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

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

当我在浏览器中键入http:// localhost: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"
      });
  }

};

2 个答案:

答案 0 :(得分:0)

感谢您的回复。

这是路线文件:

Socket s = new Socket(SocketType.Stream, ProtocolType.Tcp) 
IPAddress prnterIP = IPAddress.Parse(your ipaddress);
IPEndPoint endPoint = new IPEndPoint(prnterIP, 0); //<-- 0 here means any port, can be explicitly set
s.Connect(endPoint);
s.Send(File.ReadAllBytes(path to your PDF file));
s.Close();

我的console.log()告诉:

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;

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

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

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

答案 1 :(得分:0)

我解决了导入hotel-data.json文件的问题,现在没关系,输入ocalhost:3000 / api / hotels我看到了所有的酒店。

非常感谢。

极光