Hola, actualmente estoy aprendiendo NodeJS y el marco Express, pero tengo problemas cuando intento enviar el formulario, se supone que debe ir a la URL '/usuarios/registrar' pero parece que mi app.js no encuentra el registro. jade aunque tengo un register.jade en la carpeta de vista. Estos son algunos de mis códigos:
registrarse.jade:
extends layout block content h1 Register p Please register using the form below ul.errors if errors each error, i in errors li.alert.alert-danger #{error.msg} form(method='post', action='/users/register', enctype='multipart/form-data') ...usuario.js:
router.post('/users/register', function(req, res, next) { ... });aplicación.js:
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var expressValidator = require('express-validator'); var cookieParser = require('cookie-parser'); var session = require('express-session'); var passport = require('passport'); var local = require('passport-local').Strategy; var bodyParser = require('body-parser'); var multer = require('multer'); var flash = require('connect-flash'); var mongo = require('mongodb'); var mongoose = require('mongoose'); var db = mongoose.connection; var index = require('./routes/index'); var users = require('./routes/users'); var app = express(); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); ... app.use('/', index); app.use('/users', users); app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); });Error en mi Git Bash:
Error del navegador:
Aquí está mi estructura de carpetas:
No estoy seguro de por qué sale el error 404, ¡gracias de antemano!
Las rutas en el enrutador de sus users son relativas a la ruta montada, en su lugar, debe intentar:
router.post('/register', function(req, res, next) { ... });Según la ruta de acceso de su código, la ruta de URL en el navegador debe ser
localhost:3000/users/users/register
O puedes hacer el cambio en
router.post('/users/register', function(req, res, next) { ... });a
router.post('/register', function(req, res, next) { ... });O solo haga el cambio en
app.use('/users', users);a
app.use(users); donde su ruta de URL será localhost:3000/users/register