Javascript 如何使用Express 4路由器的节点模块和要求
我使用了一个express 4生成器来启动节点项目。它使用路由器,我有以下几点:Javascript 如何使用Express 4路由器的节点模块和要求,javascript,node.js,express,url-routing,node-modules,Javascript,Node.js,Express,Url Routing,Node Modules,我使用了一个express 4生成器来启动节点项目。它使用路由器,我有以下几点: // ./routes/index.js var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { res.render('index', { title: 'Express' }); }); module.exports = router; 现在,我想在其中
// ./routes/index.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});
module.exports = router;
现在,我想在其中添加以下路线
app.post('/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err) }
if (!user) {
req.flash('error', info.message);
return res.redirect('/login')
}
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect('/');
});
})(req, res, next);
});
我想它需要访问
app
和passport
。你能告诉我路由文件index.js
如何访问passport
,我应该从这个文件index.js
导出什么?app.post
可以替换为router.post
,因为你在这个脚本中已经有了路由器模块。您需要做的更改是要求在此页面中使用passport
模块并使用它
可能是
var express = require('express');
var passport = require('passport');
var router = express.Router();
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});
router.post('/login', function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) { return next(err) }
if (!user) {
req.flash('error', info.message);
return res.redirect('/login')
}
req.logIn(user, function(err) {
if (err) { return next(err); }
return res.redirect('/');
});
})(req, res, next);
});
module.exports = router;