Javascript 在Sails.js上获取请求Ember.js
我正在使用创建一个web应用程序,它在客户端使用Ember.js作为JavaScript框架,在服务器端使用Sails.js作为node.js框架。我按照以下方式构建了我的应用程序体系结构: 我正在尝试从Jira API REST获取一些数据,例如,我可以使用一个简单的控制器从Jira API REST with sails.js获取项目信息:Javascript 在Sails.js上获取请求Ember.js,javascript,node.js,ember.js,sails.js,jira,Javascript,Node.js,Ember.js,Sails.js,Jira,我正在使用创建一个web应用程序,它在客户端使用Ember.js作为JavaScript框架,在服务器端使用Sails.js作为node.js框架。我按照以下方式构建了我的应用程序体系结构: 我正在尝试从Jira API REST获取一些数据,例如,我可以使用一个简单的控制器从Jira API REST with sails.js获取项目信息: //server/app/controllers/JiraController module.exports = { loadProject
//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);
}
});
}
};
在server/app/config/routes中:我添加:
'get /projects' : 'JiraController.loadProject'
但是我想做的是使用Ember.js在客户端获取项目数据,换句话说,我希望sails.js请求jiraapi 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?我认为您的代码中存在一些实现错误 第一件事是在
component.js
文件中编写Ember.Route
,这是错误的。这样,您的路线被称为组件
,由于这是错误的位置,您的模型
将变为空。还有一个原因说明这不起作用。请看,您如何调用model
hook!正确的方法如下:
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return Ember.$.getJSON('/api/v1/projects');
}
});
把它放在
app/routes/components/component.js上,这样你的路线就叫做component
。现在,您必须能够访问视图
中的等效模型
数据,该数据最好位于应用程序/模板/组件/组件.hbs
您当前是否在客户端获得“已成功加载项目”?如果是这样,假设result
有您需要的JSON数据,您可以在res.send()
中传递该对象。使用Sane堆栈,Ember ans Sails可以进行本机通信,而我之所以希望Sails与外部API通信,是因为我有不同的客户端(Ember客户端、移动客户端…)我想从Sails.js服务器端获取所有数据。顺便说一句,我的应用程序的这种架构是一个好主意吗?@Alaa GI好的,首先你需要弄清楚rails的一面,并得到显示数据的一面。然后再担心客户端。您是否尝试过向getJSON添加回调以检查结果是否返回?像Ember.$.getJSON('/api/v1/projects',function(res){console.log('response',res)})
实际上它什么也不返回:“response”对象{projects:Array[0]}