如何在Express中使用路由器而不是app?

时间:2016-04-23 21:51:27

标签: express

我观看了vimedo视频(https://vimeo.com/56166857)并按照他的指示构建我的Web应用程序更多模块。

// project/signup/index.js
var express= require('express');
var app = module.exports= express();
app.set('views', __dirname);
app.set('view engine', 'jade');
app.get('/', function(req,res){
  res.render('form');
});

// project/app.js
var express = require('express');
var app = express();
var login= require('./login');
var signup = require('./signup');
app.use('/login', login);
app.use('/signup',signup);
module.exports=app;
var port = 4100;
app.listen(port, function(){
  console.log('we are connecting server at '+ port);
})

但是,我想使用router代替app,所以我希望我的代码看起来像这样,

// project/signup/index.js
..
router.get('/', function(req,res){
  res.render('form');
});

我在index.js中添加了var router = express.Router();module.exports=router;,但没有任何运气。 我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您的require()路径似乎有误。你应该使用var signup = require('./signup/index'); 而且,我所看到的大多数快递应用都遵循项目结构:
App目录
__app.js
__ /路线
____ login.js
____ signup.js
__ /视图
____ login.jade

// project/routes/signup.js
const router = require('express').Router();
//...
router.get('/', (req, res) => {
  res.send("signup!");
});

module.exports = router;

// project/app.js
const signup = require('./routes/signup');
//...
app.use('/signup', signup);