表单提交404未find错误

您好,我目前正在学习NodeJS和快速框架,但我有问题,当我尝试提交表单,它假设去'/用户/注册'的url,但似乎我的app.js没有find注册。玉文件虽然我有一个register.jade视图文件夹下。 这是我的一些代码:

register.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') ... 

user.js的:

 router.post('/users/register', function(req, res, next) { ... }); 

app.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); }); 

错误在我的Git Bash上:

giterror

来自浏览器的错误:

browsererror

这是我的文件夹结构:

folderstructure

我不知道为什么404错误出来了,谢谢提前!

根据代码的path,浏览器中的urlpath应该是

localhost:3000/users/users/register


要么你可以改变

 router.post('/users/register', function(req, res, next) { ... }); 

 router.post('/register', function(req, res, next) { ... }); 

或者只是在改变

 app.use('/users', users); 

 app.use(users); 

你的urlpath将会是localhost:3000/users/register

users路由器中的路由是相对于挂载的path,您应该尝试:

 router.post('/register', function(req, res, next) { ... });