Подтвердить что ты не робот

Получить запрос Ember.js на Sails.js

Я создаю веб-приложение, используя Sane stack, который использует Ember.js на стороне клиента как JavaScript, а на стороне сервера он использует Sails.js как фреймворк node.js. Я структурировал архитектуру приложения следующим образом:

enter image description here

Я пытаюсь получить некоторые данные из JRE API REST, я могу, например, получить информацию о проекте из JREA API REST с помощью sails.js с помощью простого контроллера:

//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 запросил JIRA API Rest, а затем передал данные (JSON) в Ember. js, который отобразит его в представлении.

Как я могу это сделать, пожалуйста!?

ИЗМЕНИТЬ:

На стороне клиента я сделал это:

//стручки/компоненты/проекта/component.js

import Ember from 'ember';

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

Как я могу отобразить этот JSON на мой взгляд?

4b9b3361

Ответ 1

Я думаю, что в вашем коде есть ошибка реализации.

Во-первых, вы пишете Ember.Route внутри файла component.js, что неверно. Таким образом, ваш маршрут называется component, а поскольку это неправильное местоположение, ваш model становится пустым. Есть еще одна причина, почему это не работает. Смотрите, как вы вызываете 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. Теперь вы должны иметь доступ к эквивалентным model данным в view, который в идеале должен быть в app/templates/components/component.hbs.