2015-05-27 33 views
11

İstemci tarafında bir JavaScript çerçevesi olarak Ember.js kullanan ve sunucu tarafında Sails.js'yi bir node.js olarak kullanan Sane stack kullanarak bir web uygulaması oluşturuyorum. çerçeve. Ben Jira API REST bazı verileri almak çalışıyorumİstek üzerine Sails.js'de Ember.js

enter image description here

Ben, örneğin, kullanan sails.js ile JIRA API REST Projesi'nin bilgi GET olabilir, şu şekildedir: Ben uygulama mimarisi yapılandırılmış basit bir kontrolör: sunucu/app/config/rotalarında

//server/app/controllers/JiraController 
module.exports = { 
    loadProject : function(req, res){ 
     console.log("Jira contoller"); 
     var Http = require('machinepack-http'); 
     process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 
     Http.sendHttpRequest({ 
      url: '/rest/api/2/project/', 
      baseUrl: 'https://jira.domain.com', 
      method: 'get', 
      headers: { 
       "Authorization": "Basic YWxhYS52654f0bWFuaTphbGFhNDE0NA==" 
      } 
     }).exec({ 
      serverError: function(result) { 
       res.send("server error" + JSON.stringify(result)); 
      }, 
      success: function(result) { 
      // res.send("Projects loaded successfully"); 
      res.send(result); 
      } 
     }); 
    }  
}; 

:

'get /projects' : 'JiraController.loadProject' 

Ama ne yapmak istediğim Proje d olsun: ben eklemek Bir başka deyişle, Ember.js ile istemci tarafında atamak isterim ki, sails.js JIRA API Rest'i talep eder ve daha sonra verileri (JSON) bir View'da gösterecek olan Ember.js'ye iletir.

Bunu nasıl yapabilirim lütfen!

DÜZENLEME: Bence bu JSON işleyebilen nasıl

//pods/components/project/component.js

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model() { 
    return Ember.$.getJSON('/api/v1/projects'); 
    } 
}); 

: Bunu yapan istemci tarafında

?

+0

Şu anda istemcide "Projeler başarıyla yüklendi" durumuna geliyor mu? Eğer öyleyse, 'sonuç' için ihtiyacınız olan JSON verisi varsayarak, bu nesneyi yalnızca 'res.send() 'biçiminde iletebilirsiniz. – brittonjb

+0

Hayır, sonuçtan müşteri tarafını nasıl alacağımı bilmiyorum, bu benim sorum –

+0

Belirli bir sebep var mıdır? Diğer api'yi sorgulamak için yelken api sorgulamak yerine, neden doğrudan diğer api'yi sorgulamak için ember kullanmıyorsunuz? – Craicerjack

cevap

1

Sanırım kodunuzda bazı uygulama hataları var.

component.js dosyasının içine bir ilk Ember.Route yazı yazıyorsunuz, hangisi yanlıştır. Bu şekilde rotanız component olarak adlandırılır ve bu yanlış konum olduğundan, model boşalır. Bunun çalışmadığı bir sebep daha var. Gördün mü, model kancasını nasıl arıyorsun? şöyle doğru yoludur: app/routes/components/component.js rota component denir Bu şekilde de

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model: function() { 
     return Ember.$.getJSON('/api/v1/projects'); 
    } 
}); 

koyun bu. Şimdinumaralınumaralı veri tabanına erişebilmeniz gerekir, bu da ideal olarak app/templates/components/component.hbs numaralı telefondan olmalıdır.

İlgili konular