2016-07-21 4 views
1

私は今これを試してみたいと思っています。私はExpressでルートを設定するためのベストプラクティスを決定しようとしています。私はファイルごとにセットアップした別々のルートを分けたいと思う。私はExpress Routerモジュールを使用しようとしていますが、動作させることはできません。明示的なルータ()でGET/POSTできません

<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> 

I:ここ

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; 

そして私が投稿しようとしている形です:ISユーザーのためのルートがある

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')); 

ここに:ここに私のメインのサーバーのファイルです私はファイルが適切に要求されていないことを知っていますが、これは単に私に404エラーを与えています。 2番目のファイルで

答えて

2

だけのために/ルート聞く:

/* 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に聞いているので、( "/ユーザ" ..)

関連する問題