2016-09-30 1 views
2

Я пытаюсь поделиться varible между сервером и клиентом code.I объявили глобальную переменную в /lib/environment.jsКак разделить глобальную переменную между сервером и клиентским кодом в Метеоре

test = null; 

В server/main.js я обновляю эту переменную, когда получаю запрос POST.

test ="hello"; 

Проблема заключается в том, если я пытаюсь получить доступ к одной переменной внутри клиента/main.js файла, значение не обновляется до нового значения. Я не понимаю этого поведения.

+0

Ну, клиент (браузер) и сервер не разделяют переменные (даже если они включают один и тот же файл), поскольку они являются отдельными процессами, которые обычно не работают на одном компьютере. AFAIK, вам придется использовать WebSockets или что-то вроде SignalR для отправки значения с сервера клиенту –

+0

Спасибо @JakubJankowski – Heisenberg

ответ

6

Поскольку Meteor работает таким интегрированным способом, это заставляет вас думать, что это возможно, но процесс сервера будет выполняться на сервере, а клиент работает в браузере. Легко забыть об этом.

Для обмена данными проще всего использовать коллекцию, которая, если она опубликована и подписана, дает тот же эффект, что и глобальная переменная.

В противном случае вы можете использовать Meteor.call() для передачи данных с клиента на сервер.