2017-01-06 10 views
1

Одним из возможных способов было бы запустить отдельный сервер узла, создавая только необходимые вызовы API для указанного модуля, обрабатывать и испускать HTML как строку. Вероятно, это может быть импортировано в основное приложение responsejs через вызов API. Или может быть использована структура, такая как Seneca, которая может использовать выход службы узла аналогично. Невозможно определить способ импорта вывода службы узла в основное приложение responsejs как компонент вместе с реквизитами. Это позволило бы мне добавить некоторые чистые интерфейсные функции и сделать из него более высокий компонент заказа.Как можно сделать микросервис из модуля реакции?

+0

['dangerouslySetInnerHTML'] (https://facebook.github.io/react/docs/dom-elements.html#dangerouslysetinnerhtml) - это функция React, которую вы могли бы использовать для синтаксического анализа/вставки, чтобы реагировать на ответ HTML с вашего микро -сервис-сервер. –

+0

@MatthewHerbst да, но это даст мне HTML. Я пытаюсь понять, как его можно импортировать как компонент reactjs. Поскольку это позволит мне добавить больше функциональности и сделать компонент более высокого порядка. –

+0

О, я сейчас понимаю. Не. Для этого потребуется нечто похожее на 'eval' –

ответ

1

В результате я создал модуль, который можно было инициировать в одном месте и использовать в компоненте внутри него, который затем можно было импортировать в основное приложение. Так что в моем модуле я есть -

module.exports = { 
 
    initiate: funtion(token){ 
 
    this.data = useTokenToGetData(token); 
 
    ... //downstream processing 
 

 
    }, 
 
    getData: function() { 
 
    return this.data; 
 
    } 
 
}

и -

import {getData} from 'path/to/module'; 
 
export default SomeComponent extends React.Component { 
 
    constructor(props) { 
 
    super(props); 
 
    this.state = { 
 
     data: getData() 
 
    } 
 
    } 
 
    render(){ 
 
    const {data} = this.state; 
 
    return (
 
     <div>{data}</div> 
 
    ); 
 
    } 
 
}

Затем в главном приложении, я инициируют модуль один раз - -

import {initiate} from "path/to/external/module"; 
 

 
export default ParentComponent extends React.Component { 
 
    constructor(props){ 
 
    super(props); 
 
    initiate(props.data); 
 
    } 
 
    render(){ 
 
    return (
 
     <div>{this.props.children}</div> 
 
    ); 
 
    } 
 
}

и использовать компонент я сделал в модуле у детей ---

import SomeComponent from "path/to/module/SomeComponent" 
 
    
 
export default const ChildComponent = (props) => { 
 
    return (
 
    <div> 
 
    Using Somecomponent With Data Initiated previously and processed by the module 
 
    <SomeComponent /> 
 
    </div> 
 
); 
 
}

Для обработки, которая требует Serverside, я в конечном итоге сделать узел -express для модуля. Но я предполагаю, что это не совсем интерфейсный микросервис.

 Смежные вопросы

  • Нет связанных вопросов^_^