那么我有一个问题,因为我想从一个Mongoose API返回一个JSON,使用Express,问题是路由返回JSON正确,但是当我试图在前端捕捉它(Ember)时,它会返回null状态。Ember + Mongoose不返回记录
在我的余烬路线,我有以下几点:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params){ //i'm getting params from the url as a paremeter
return Ember.RSVP.hash({
questions: this.store.find('examGroupQuestion/show-q', params.questionsGroup_id)
});
}
});
重要的是,这条路线是孩子从一个又一个,接下来我会告诉你的路由器:
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType,
rootURL: config.rootURL
});
Router.map(function() {
this.route('examGroupQuestion',function() {
this.route('showQ',{
path: 'showQ/:questionsGroup_id'
});
});
});
export default Router;
最后,这是我的模型:
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
export default Model.extend({
/* the atributte array it's defined in a transform */
description: attr('string'),
matrix_eval: attr('array'),
level: attr('string'),
rows: attr('array'),
randomize_row: attr('boolean'),
columns: attr('array'),
randomize_col: attr('boolean'),
});
好吧,我们试图从路由模型传递json到模板,但唱片一直表明,我们可以看到REST服务器响应和错误的下一个图像中的空,如:
在REST服务器我有这条路线:
router.route('/examGroupQuestion/showQs/:qid').get(function(req,res){ questions_group.getQuestions(req,res, req.params.qid); });
,并在API我有以下几点:
module.exports.getQuestions = function(req,res,id){
QuestionGroup.findById(id).exec(function(err, questiongroup){
if(err)
{
res.send(err);
}
function done(result){
res.json({questionsGroup:result});
}
var result = [];
var l = questiongroup.questions.length;
for(var j = 0; j < l; j++)
{
(function(j){
Questions.findById(questiongroup.questions[j].id).exec(function(err, questions){
if(err)
{
res.send(err);
}
result.push(questions);
if(l === j+1)
{
done(result);
}
});
})(j);
}
});
};
有谁知道它为什么会发生,任何帮助它的赞赏。
看起来没问题,但findRecord函数只能获得一个具有特定模型的记录,事情是我返回了一组promise,并且我需要获取所有这些记录,因为每个promise都带有问题数据内。 –
以及你可以使用'query',这个方法委托一个查询到适配器。这是适配器级语义暴露给应用程序的地方。例如:store.query('person',{ids:[1,2,3]}); – Majid