-1
這是我的模型/架構。 Create方法的作品,但 「所有」 的方法不會..它返回一個500 ..爲什麼我的Mongoose findAll方法返回500錯誤..?
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var DiSchema = new mongoose.Schema({
name: { type: String, lowercase: true , required: true },
photo: { type: String },
email: { type: String, unique: true, lowercase: true },
year: { type: Number},
timestamp: { type : Date, default: Date.now },
description: { type: String},
location: { type: Array },
social: {
website: {type: String},
facebook: {type: String },
twitter: {type: String },
instagram: {type: String }
}
});
DiSchema.methods.create = function(o, cb){
this.model.save(o, cb);
};
DiSchema.methods.all = function(o, cb){
Di.find(o, cb);
};
module.exports = mongoose.model('Di', DiSchema);
這裏是我的控制器:
'use strict';
var Di = require('../models/di');
exports.create = function(req, res){
Di.create(req.body , function(err, di){
console.log('req.body.di', req.body);
res.send({di:di});
});
};
exports.index = function(req, res){
Di.all({}, function(err, dis){
res.send({dis:dis});
});
};
路線:
var dis = require('../contollers/dis');
app.get('/dis', dis.index);
app.post('/dis', dis.create);
的創建方法工作正常,但當我點擊獲得終點,索引/所有方法 - 我一直得到一個500.
我可以把th直接在控制器中查詢,並且它工作。
但是,當我嘗試從模式方法調用它 - 它不會。
我使用的方法錯了嗎?我的JS關閉了嗎?
更新:
,如果我在控制器把這個代碼,它的工作原理:
exports.index = function(req, res){
Di.find({}, function(err, dis) {
if (!err){
res.send(dis);
};
});
};
仍有意的「原來的問題,爲什麼該方法不是從工作模型」。
我也試過這個重構模型,無濟於事:
DiSchema.methods.list = function(o, cb){
this.model.find(o, cb);
};
&
DiSchema.methods.list = function(o, cb){
this.model('Di').find(o, cb);
};
導致500錯誤的異常包含什麼?你應該能夠從那裏調試。 – JohnnyHK
我在巡視工具中沒有看到網絡上顯示的任何內容。唯一顯示500的是摩根 - 在終端。我會進一步調查這一點。如果我在Distiller.all函數中(在控制器內)放置一個console.log,它永遠不會被命中,所以看起來函數沒有被正確調用或掛起... – NoobSter