无法使模块导出为快速路由器工作

时间:2016-06-08 10:08:05

标签: node.js express

我真的很难将我的路线分成不同的文件。在我的./routes/index.js文件中,我有以下代码:

var express = require('express');
var router = express.Router();

...

router.all('/', requireLogin, function(req, res, next){
next();
});

/* GET home page. */
router.get('/', function(req, res, next) {

res.render('index', { title: appConfig.appTitle, 
                  messageForm: req.session.messageData,
                  });
});


router.get('/login', function(req, res){
res.render('login', {title: appConfig.appTitle,
                     messageForm: passport.messageData})
});

router.post('/login', passport.authenticate('local', {
failureRedirect: '/login',
successRedirect: '/', 
failureFlash: true }
));

router.use('./inventory', require('./inventory'))
router.use('./transaction', require('./transaction'))

module.exports = router;

现在,/ login页面和/页面正常工作。但是,当我尝试进入/ transaction时,我收到一条错误消息,说无法进行GET /事务处理。这是transaction.js中与index.js位于同一目录的代码:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {

console.log('router.get');
});


module.exports = router;

但是如果我将来自transaction.js的router.get(' /')包含到index.js中并将其重命名为router.get(' / transaction'),那么工作正常。我有什么东西在这里失踪吗?

2 个答案:

答案 0 :(得分:1)

尝试这样。只需删除网址中的点。

beforeSelectRow

答案 1 :(得分:0)

app.js中的

var routes = require('./routes/index'),
    transaction = require('./routes/transaction');

app.use('/transaction', transaction);
app.use('/', routes);