Necesito transferir los datos del formulario al servidor (creado en el marco expreso de nodeJS), para un uso posterior de los datos de los formularios. Pero el botón "enviar" debería enviar al usuario a otra página html (creo un chat, el primer html es el registro, el segundo es el chat en sí, con datos de registro). ¿Qué debo especificar en el método de acción para transferir datos al servidor index.js, pero al mismo tiempo abrir una página html que se encuentra en una ruta diferente?
index.html (registro):
<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>redirigir (): inicialmente, cuando no había necesidad de enviar al servidor, redirigido a la página con el chat (usando window.location).
índice.js
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) }) io.on('connection', (socket) => { .....La action debe ser la URL a la que desea enviar los datos del formulario.
El punto final en su código Express que coincida con esa URL debe ser responsable de procesar los datos enviados y enviar la respuesta al navegador.
Por lo general, esa respuesta será el documento HTML que desea devolver. Es posible que desee emitir una respuesta de redireccionamiento para indicarle al navegador que realice una segunda solicitud a una URL diferente.