不能GET / POST与高速路由器()

所以我一直在试图解决这个问题,现在我在这里错过了一些东西。 我正在尝试确定在Express中设置路线的最佳做法。 我想分开不同的路线,我已经由文件设置。 我试图使用快速路由器模块,但我无法得到它的工作。 这是我的主要服务器文件:

var express = require('express'); var handlebars = require( 'express-handlebars' ); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); // Models var db = require( './models/db.js' ); var user = require( './models/user.js' ); // Routes/Controllers var routes = require( './routes/index.js' ); var userRouter = require( './routes/users.js' ); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.engine( 'handlebars', handlebars( { defaultLayout: 'main' } ) ); app.set('view engine', 'handlebars'); // uncomment after placing your favicon in /public //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); // Routing Table app.use('/', routes); // User app.use( '/users', require( './routes/users' )); 

这里是用户的路线:

 var express = require('express'); var userRouter = express.Router(); var mongoose = require( 'mongoose' ); var bodyParser = require( 'body-parser' ); var methodOverride = require( 'method-override' ); userRouter.use( bodyParser.urlencoded({ extended: true })); userRouter.use( methodOverride( function( req, res ) { if ( req.body && typeof req.body === 'object' && '_method' in req.body ) { var method = req.body._method; delete req.body._method; return method; }})); /* GET users listing. */ userRouter.get( '/users', function( req, res, next ) { console.log( 'users GET' ); mongoose.model( 'User' ).find( {}, function( err, users ) { if( err ) { console.error( err ); } else { console.log( users ); res.render( 'users/index', { users: users } ); } }); }) .post( function( req, res, next ) { console.log( req ); }); module.exports = userRouter; 

这里是我试图发布的表单:

 <form name='create-users' action='/users' method='post' > <h6>Create Account</h6> <fieldset> <label for='username'>User Name</label> <input name='username' id='newname' type='text' placeholder='User Name'> <label for='email'>Email</label> <input name='email' id='email' type='text' placeholder='Email'> <label for='newpassword'>Password</label> <input name='password' id='newpassword' type='text' placeholder='Password'> <button type='submit'>Create</button> </fieldset> </form> 

我知道我不需要文件正确,但这只是给我一个404错误。

在你的第二个文件只听/路线:

  /* GET users listing. */ userRouter.get( '/', function( req, res, next ) { console.log( 'users GET' ); mongoose.model( 'User' ).find( {}, function( err, users ) { if( err ) { console.error( err ); } else { console.log( users ); res.render( 'users/index', { users: users } ); } }); }) .post('/', function( req, res, next ) { console.log( req ); }); 

既然你正在听你的第一个文件app.use(“/ users”..)