Estoy creando un chat (en nodeJS), quería enviar datos del formulario al servidor desde la página de registro, para que la página siguiente (el chat en sí) muestre el nombre de usuario. Pude hacer esto a través de localStorage, pero tan pronto como comencé a conectar la base de datos, me di cuenta de que no podía hacerlo sin enviarlo al servidor. Pude hacer esto, pero solo pasa el valor a app.post (es decir, el alcance es solo esta llamada de método). Necesito ingresarlo en una variable global para realizar controles y enviarlo al lado del cliente. Y cómo hacer que cuando se abra el botón de enviar, se abra otra página html (el chat en sí).
índice.html
<body> <a href = "client/chat.html">Тык</a> <form action="/index" method="post" class="FORM"> <label>Username</label><br> <input type="TEXT" class="CHECK" autocomplete="off" name="Username"/> <button type="submit" onclick="redirect()" class="BTN">Send</button> </form> <script src="/socket.io/socket.io.js"></script> <script src = "client/register.js"></script> </body>index.js (servidor)
const express = require('express'); const app = express(); const db = require('./database/database'); // подключаемся к бд const bodyParser = require('body-parser'); const http = require('http'); const server = http.createServer(app); const {Server} = require('socket.io'); const io = new Server(server); const port = 3000; let id = 0; let users = {}; const urlencodedParser = bodyParser.urlencoded({ extended: false, }) app.use(express.static(__dirname)); app.get('/index', (request, response ) => { response.sendFile(__dirname + '/index.html'); }); app.post('/index', urlencodedParser, function (request,response) { if (!request.body) return response.sendStatus(400) console.log(request.body.Username) // мне надо чтобы значение Username было в глобальное переменной }) io.on('connection', (socket) => { socket.on('chat message', (msg) => { // событие "сообщение чата" .....