那麼我有一個問題,因爲我想從一個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