在Sails.js上获取请求Ember.js

我正在使用Sane栈创build一个Web应用程序,在客户端使用Ember.js作为JavaScript框架,而在服务器端使用Sails.js作为node.js框架。 我的结构如下:

在这里输入图像描述

我试图从Jira API REST获取一些数据,例如,我可以使用一个简单的控制器从sails.js中从JIRA API REST获取项目信息:

//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); } }); } }; 

在服务器/应用程序/configuration/路线:我添加:

 'get /projects' : 'JiraController.loadProject' 

但是我想要做的是用Ember.js获取客户端的Project数据,换句话说,我希望sails.js请求JIRA API Rest,然后将数据(JSON)传递给Ember.js,这将会将其显示在视图中。

我该怎么做,请!

编辑:

在客户端,我这样做了:

//pods/components/project/component.js

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

我如何在我的视图中呈现这个JSON?

我认为你的代码有一些实现的错误。

首先,你正在写一个Ember.Route在一个component.js文件中,这是错误的。 这样你的路由被称为component ,因为这是错误的位置,你的model变空。 还有一个原因,这是行不通的。 看,你怎么叫model钩! 正确的方法如下:

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

把这个放在app/routes/components/component.js这样你的路由被称为component 。 现在,您必须能够访问您的view等效的model数据,理想情况下应该在app/templates/components/component.hbs