Получить переменную из клиентского JavaScript-файла в Express - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь отправить переменную из моего клиентского файла JavaScript в мой файл app.js на стороне сервера. Я знаю, что вы можете получить значение из чего-то вроде поля ввода формы, используя такие методы, как приведенный ниже (используя Express):

var express = require('express');
var app = express();
var path = require('path');

let cityResponse;

app.post('/city', function(req,res) {
  cityResponse = {
    user_name: req.body.userName
  }
  res.sendFile(path.join(__dirname, '/client/city/index.html'));
});

Но я бы хотел получить значение не напрямую из HTML, а из файла JavaScript, к которому прикреплен HTML.


Кроме того, в настоящее время я использую Socket.io для отправки данных с сервера на клиент и наоборот, используя window.onload, чтобы сообщить серверу, когда страница готова:

index.js

window.onload = function() {
  socket.emit('cityPageReady');
  console.log("city page ready");
};

socket.on('cityPageInfo', function(cityResponse) {
  console.log('city page info received');
  console.log(cityResponse);
  console.log(cityResponse.user_name);
  userName = cityResponse.user_name;
  document.getElementById("name").innerHTML = userName;
});

app.js

var city = io.of('/city').on('connection', (socket) => {
  console.log('A user has connected!');
  socket.on('cityPageReady', function() {
    socket.emit('cityPageInfo', cityResponse);
    console.log('city page ready recieved');
  });
});

Это работает, но многие люди говорили, что это излишне, или, как выразился один человек, "используя молоток, чтобы убить пчелу". В идеале я бы хотел использовать оптимальный метод. Я знаю, что шаблонизаторы могут достичь этого, но я не хочу переписывать весь мой HTML только для того, чтобы иметь возможность отправить одну переменную на сервер.


Повторюсь, мои вопросы:

  • Как получить переменную из файла JavaScript на стороне клиента (не HTML)?
  • Каков наилучший способ отправить эти переменные обратно на сторону клиента?

Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...