node.js没有从mongodb中检索任何数据

时间:2016-12-18 22:10:07

标签: node.js mongodb mongoose

我是node.js的初学者,并尝试学习如何从mongodb获取数据以通过node.js并在页面上显示。 我正在从教程中学习它,所以请遵循这些方法。 https://www.youtube.com/watch?v=dSQ1CYLHWYM&index=6&list=PL55RiY5tL51rajp7Xr_zk-fCFtzdlGKUp

当我重新启动服务器并加载localhost时,它会卡住并且不会向前移动,也不会在终端或数据库或控制台中显示任何错误。 我不确定为什么它没有在视图中显示任何数据。我的mongodb正在工作并正在侦听端口27017,如果我去mongod做db.products.find(),我会看到所有数据。此外,如果我只是像var products = Product.find()那样做,它会显示一些数据,所以基本上应该有数据进入。

var express = require('express');
var router = express.Router();
var Product = require('../models/product');

/* GET home page. */
router.get('/', function(req, res, next) {
  Product.find(function(err, docs){
      console.log(docs);
     var productChunks = [];
    var chunkSize = 3;
    for( var i= 0 ; i < docs.length ; i+= chunkSize) {
        productChunks.push(docs.splice(i, i + chunkSize));
    }
      res.render('shop/index', { title: 'Shopping Cart' , products : productChunks});
  });
});

module.exports = router;

这是db的架构

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var schema = new Schema({
    imagePath : {type : String, required: true},
    title : {type : String, required: true},
    description : {type : String, required: true},
    price : {type : String, required: true},
});

module.exports = mongoose.model('Product', schema);

这是index.hbs

{{# each products}}
    <div class="row">
        {{# each this}}
            <div class="col-sm-6 col-md-4">
                <div class="thumbnail">
                    <img class="img-responsive" src="{{this.imagePath}}" alt="...">
                    <div class="caption">
                        <h3>{{this.title}}</h3>
                        <p>{{this.description}}</p>
                        <div class="clearfix">
                            <div class="pull-left">${{this.price}}</div>
                            <a href="#" class="btn btn-success pull-right" role="button">Add to cart</a>
                        </div>
                    </div>
                </div>
            </div>
        {{/each}}
    </div>
{{/each}}

所以我不确定如何解决这个问题。由于我的本地主机卡住了,即使重新启动数据库和服务器,它仍然无法正常工作。

1 个答案:

答案 0 :(得分:0)

问题是我的app.js文件没有完全配置好。我忘了连接到mongoose。我已经解决了这个问题。 感谢所有对此发表评论的人。