Мне нужно добавить компонент реагирования в приложение Meteor (реагировать в блэйз-компоненте) ( Meteor Guide ), чтобы упростить задачу, компонент представляет собой кнопку, которая должна вызывать события для отправки ввода. на другой сервер. Если я пытаюсь сделать http-вызов от клиента, но я получаю ошибку перекрестного источника. Поэтому мне нужно сделать вызов API с метеорного сервера.
Поток запроса должен быть таким:
Нажатие кнопки -> запуск события шаблона -> Meteor.call ( 'HTTPRequest', POST, url, data) -> сохранить ответ в Meteor Mon go db и отправить в хранилище реагирующего притока
Проблема, с которой я столкнулся, заключается в том, что я не могу найти способ чтобы вызвать событие из приложения реагировать.
Сторона клиента: следующий файл является внешним.
React App:
import React from 'react';
const App = () => {
return <button onClick={...trigger the event...}> Run </button>
};
export default App;
Проверка файла метеора. html:
<template name="test">
<div>{{> React component=App onClick=onClick}}</div>
</template>
Метеоритет. js
import App from './App.js';
Template.test.helpers({
App() {
return App;
},
});
Template.test.events({
'click send-code': (url, data) => {
Meteor.call('HTTPRequest', 'POST', url, data);
},
});
На стороне сервера:
бегун. js
import { HTTP } from 'meteor/http';
Meteor.methods({
'HTTPRequest'(method, url, data) {
return new Promise((resolve, reject) => {
try {
HTTP.call(method, url, data || {}, (error, result) => {
if (error) {
reject(error);
return;
}
resolve(result);
});
} catch (e) {
reject(e);
}
});
}
});
Есть ли способ вызова метода на стороне сервера ( бегун. js) непосредственно из части реакции?
Если нет, как я могу инициировать событие для вызова метода сервера из реакции?
Как передать данные из компонента реакции в Api позвонить и сохранить его обратно?
Спасибо!