【问题标题】:mean stack route not returning a response平均堆栈路由不返回响应
【发布时间】:2014-06-24 01:01:45
【问题描述】:

我正在尝试创建一个控制器 /projects 来返回集合“工作”中的所有数据。数据在那里,调用以 200 完成,但只返回 [],或者如果未注释,则返回 test:test。有人能指出我正确的方向吗,我是 MEAN 堆栈的新手。

服务器/控制器/work.js

'use strict';

/**
 * Module dependencies.
 */
var mongoose = require('mongoose'),
  Work = mongoose.model('Work');

exports.all = function(req, res) {

  Work
    .find()
    .exec(function(err, project) {
      console.log(project);
      res.json(project);
      //res.json({"test":"test"});
    });

};

public/system/controllers/work.js

'use strict';

angular.module('mean.system').controller('WorkController', ['$scope', 'Global', '$http',     
function ($scope, Global, $http) {

  $scope.global = Global;

  $http.get('/projects').success(function(d) {

  }).error(function(d) {

  });

}]);

服务器/路由/work.js

'use strict';

// User routes use users controller
var work = require('../controllers/work');

module.exports = function(app) {

  app.get('/projects', work.all);

};

【问题讨论】:

  • 你确定你有数据吗?打开你的 mongo cli 看看。 mongo <dbname> 然后db.works.find()(如果您不确定集合名称,请使用show collections; 获取集合列表
  • 是的,当我在终端的 mongo shell 中访问集合时有数据

标签: javascript node.js mongodb mean-stack


【解决方案1】:

发现问题,由于某种原因,该集合在某处被命名为“作品”而不是“作品”。也许这是在猫鼬或其他东西中自动完成的,但它解决了这个问题。

【讨论】:

  • express 尝试根据文档名称对集合名称进行复数。例如'article' 变成'articles' 等等。当你使用mongoose.model('ModelName') 它仍然应该明白你在问什么。我很想看看你的模型,试图理解你为什么会看到这种行为。
猜你喜欢
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 2017-09-25
  • 2016-09-11
相关资源
最近更新 更多