Estoy trabajando en un formulario de registro en HTML. El formulario usa un script para tomar los datos ingresados por el usuario y convertirlos en formato JSON para que mi backend pueda procesarlos. Mi editor de texto es Visual Studio Code y estoy comprobando la funcionalidad de mi código con la extensión Five Server. Cuando ejecuto el código, recibo un mensaje 405 (método no permitido) cada vez que intento enviar datos. Sospecho que cuando realizo la llamada de búsqueda, no estoy haciendo referencia correctamente al recurso. ¿Mi archivo JavaScript debe estar en la misma carpeta que mi archivo HTML? ¿O mi problema es otro?
<script> const form = document.getElementById('createAccount') form.addEventListener('submit', registerUser) // Will send Data as JSON async function registerUser(event) { event.preventDefault() const firstName = document.getElementById('signupFname').value const lastName = document.getElementById('signupLname').value const email = document.getElementById('signupEmail').value const username = document.getElementById('signupUsername').value const password = document.getElementById('signupPword').value //Is this right? const result = await fetch('/signup', { method: 'POST', headers: { 'Content-Type':'application/json' }, body: JSON.stringify({ firstName, lastName, email, password, username }) }).then((res) => res.json()) console.log(result) } </script>
Aquí está mi Javascript
const express = require("express"); const router = express.Router(); const path = require('path'); router.use('/', express.static(path.join(__dirname, 'static'))); // mongodb user model const User = require("./../models/users"); // Password handler const bcrypt = require("bcryptjs"); // Signup router.post("/signup", (req, res) => { let { fname, lname, username, password, email } = req.body; fname = fname.trim(); lname = lname.trim(); username = username.trim(); password = password.trim(); email = email.trim(); if() // Trimmed code for sake of space )};