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

Ala*_*-GI 11 javascript jira node.js ember.js sails.js

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

在此输入图像描述

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

//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);
            }
        });
    }    
};
Run Code Online (Sandbox Code Playgroud)

在server/app/config/routes中:我添加:

'get /projects' : 'JiraController.loadProject'
Run Code Online (Sandbox Code Playgroud)

但我想要做的是使用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');
  }
});
Run Code Online (Sandbox Code Playgroud)

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

Man*_* SK 1

我认为您的代码中存在一些实现错误。

首先,您正在文件Ember.Route内部写入component.js,这是错误的。这样你的路线就被调用了component,因为这是错误的位置,你的路线model就空了。这不起作用还有一个原因。看看,你是如何调用modelhook 的!正确的做法如下:

import Ember from 'ember';

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

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