【问题标题】:Express.js Routes Hang on everything but the homepageExpress.js 路由挂在除主页之外的所有内容上
【发布时间】:2015-05-05 05:16:50
【问题描述】:

我正在构建一个应用程序并学习 MEAN 堆栈。我昨晚成功followed a tutorial on thinkster 并且能够让一切按预期工作。然而,现在,当我自己尝试这样做时,我遇到了问题。我的应用程序“burbank”的主页加载正常,但我创建的 3 条路线只是挂起。没有错误,终端没有,只是尝试永远加载。

localhost:3000 加载正常

localhost:3000/contacts 挂起

index.js

var mongoose = require('mongoose');
var Contact = mongoose.model('Contact');
var Event = mongoose.model('Event');
var Vehicle = mongoose.model('Vehicle');

var express = require('express');
var router = express.Router();

router.get('/contacts', function(req, res, next) {
  Contact.find(function(err, contacts){
    if(err){ return next(err); }

    res.json(contacts);
  });
});

router.get('/events', function(req, res, next) {
  Event.find(function(err, events){
    if(err){ return next(err); }

    res.json(events);
  });
});

router.get('/vehicles', function(req, res, next) {
  Vehicle.find(function(err, vehicles){
    if(err){ return next(err); }

    res.json(vehicles);
  });
});

App.js

var mongoose = require('mongoose');
mongoose.connect = ('mongodb://localhost/burbank');
require('./models/Contacts');
require('./models/Events');
require('./models/Vehicles');

var routes = require('./routes/index');
var users = require('./routes/users');

我最初认为这与我在 app.js 中放置需求和变量的顺序有关,但我认为情况并非如此。无论如何,非常感谢您的帮助。我慢慢掌握了所有这些概念。

【问题讨论】:

    标签: angularjs node.js mongodb express mongoose


    【解决方案1】:

    有时只需要一个周末,去大峡谷徒步旅行,然后在车上 16 个小时就可以找到语法错​​误。

    connect.mongoose = ('mongodb://localhost/burbank');

    不等于

    connect.mongoose('mongodb://localhost/burbank');


    感谢那些帮助过我的人,非常感谢。请原谅我羞愧地低着头。

    【讨论】:

      【解决方案2】:

      根据 Mongoose 文档,find 的第一个参数是一个字典,其中包含您要应用于文档的过滤器:

      http://mongoosejs.com/docs/api.html#model_Model.find

      试试这样的:

      Contact.find().exec(function(err, contacts) { ...
      

      【讨论】:

        【解决方案3】:

        尝试检查路由是否在没有 mongoose 层的情况下使用:res.send("example");

        当在 mongoose 中使用 .find 函数时,我相信你必须传递一个空对象作为第一个参数(如果你想返回整个集合)。

        尝试改变这个:

        Contact.find(function(err, contacts){
        

        到这里:

        Contact.find({}, function(err, contacts){
        

        对所有查找查询重复此操作。

        【讨论】:

        • 它可以在没有猫鼬层的情况下工作。但是,更改为您的建议会产生相同的结果。我会坚持这一点。感谢您的帮助。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-19
        • 2020-12-29
        • 2018-07-05
        • 1970-01-01
        • 2017-01-03
        相关资源
        最近更新 更多