Javascript 表单提交404未找到错误

Javascript 表单提交404未找到错误,javascript,node.js,express,Javascript,Node.js,Express,您好,我目前正在学习NodeJS和Express框架,但当我尝试提交表单时,我遇到了问题,该表单可能会转到“/users/register”URL,但我的app.js似乎找不到register.jade文件,尽管我在view文件夹下有一个register.jade。以下是我的一些代码: register.jade: extends layout block content h1 Register p Please register using the form below

您好,我目前正在学习NodeJS和Express框架,但当我尝试提交表单时,我遇到了问题,该表单可能会转到“/users/register”URL,但我的app.js似乎找不到register.jade文件,尽管我在view文件夹下有一个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出错:

浏览器错误:

以下是我的文件夹结构:


我不知道它为什么会出错404,提前谢谢

您的
用户
路由器中的路由是相对于装载路径的,您应该尝试:

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

用户
路由器中的路由是相对于装载路径的,您应该尝试:

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

根据您的代码显示的路径,浏览器中的url路径应为

localhost:3000/用户/用户/注册


要么你可以在家里换衣服

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


或者只改变一下

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


如果您的url路径将是
localhost:3000/users/register

,则根据您的代码中显示的路径,浏览器中的url路径应为

localhost:3000/用户/用户/注册


要么你可以在家里换衣服

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


或者只改变一下

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


在浏览器中,您的url路径将是
localhost:3000/users/register

尝试
localhost:3000/users/users/register
当我尝试手动转到该url时,它仍然输出404错误,下面的答案解决了问题!在浏览器中尝试
localhost:3000/users/users/register
当我尝试手动转到该URL时,它仍然输出404错误,下面的答案修复了问题!