Передача переменных со стороны клиента в серверную часть в Node.js Express - PullRequest
0 голосов
/ 23 мая 2018

У меня есть проект Node.js Express с файлами, ориентированными следующим образом (WebStorm IDE):

enter image description here

Я хотел бы передать переменнуюот отмеченного index.js до app.js, чтобы я мог написать эту переменную в конце data.json.

Я все еще новичок в Node.js и все еще не уверен в теории клиент-сервер.Будет намного проще, если есть способ записать данные напрямую из index.js в data.json или любой другой файл json, но я думаю, что это невозможно в соответствии с предыдущими ответами.Пожалуйста, исправьте меня, если я ошибаюсь.


Обновление:

Проблема была решена с использованием Ajax, как указано в этом ответе:

с использованием $.post('/email', { address: 'xxx@example.com' }); в index.js для отправки данных и

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/email', (req, res) => {
  // you have address available in req.body:
  console.log(req.body.address);
  // always send a response:
  res.json({ ok: true });
});

app.use(express.static(dir));

app.listen(4443, () => console.log('Listening on http://localhost:4443/'));

в app.js для получения данных.

1 Ответ

0 голосов
/ 23 мая 2018

Ваш index.js должен иметь функцию, которая возвращает значение переменной, например:

# index.js
exports.default = () => {
  return 'my data';
}

# app.js
const dataGetter = require('./public/javascripts/index.js');
const myData = dataGetter();

Или, если ваши данные статичны, вы можете просто требовать () index.js каждый раз, когда выwant.

В файле node.js вы должны объявлять переменные в функциях, функции являются природой экосистемы Node.js.

...