Cuando intento usar la ruta de registro, tengo el siguiente error: POST http://localhost:3001/sign-up 404 (Not Found) Revisé una pregunta similar en StackOverflow pero no encontré de dónde procedía mi problema. ..
En la parte frontal, busco el 'registro' de la ruta POST, pero parece que no puede encontrarlo, mientras que en la parte posterior tengo el mismo nombre para la ruta POST, todo está bien importado en app.js en la parte posterior . Revisé todo lo que sabía y todavía no he encontrado una solución.
Aquí está parte de mi código, avíseme si necesita algo más.
Reaccionar: Inicio.js
import React, {useState} from 'react'; function Home(props) { const [signUpEmail, setSignUpEmail] = useState('') var handleSubmitSignup = async () => { const data = await fetch('/sign-up', { method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body: `email=${signUpEmail}` }) } return ( <Box> <Input onChange={(e) => setSignUpEmail(e.target.value)}/> <Button onClick={() => handleSubmitSignup()}> Sign-up </Button> </Box> ); } export default HomeExpreso: app.js
var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var indexRouter = require('./routes/index'); require('./models/connection') var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'reactapp/build'))); app.use('/', indexRouter); app.use(function(req, res, next) { next(createError(404)); }); app.use(function(err, req, res, next) { res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; res.status(err.status || 500); res.render('error'); }); module.exports = app;Express/rutas: index.js
var express = require('express'); var router = express.Router(); var userModel = require('../models/users') router.post('/sign-up', async function(req,res,next){ var newUser = new userModel({ email: req.body.email, }) saveUser = await newUser.save() } res.json({saveUser}) }) module.exports = router;Gracias por tu ayuda !
En su app.js , está definiendo su enrutador de usuario de esta manera
app.use('/users', usersRouter); Si hace esto, entonces su ruta sería http://localhost:3001/users/sign-up no http://localhost:3001/sign-up . Por eso te sale el error 404
En la actualización de tu aplicación de reacción
const data = await fetch('users/sign-up', { /* Rest of the code */ })