我使用了 Express 4 生成器来启动 Node 项目。它使用路由器,我有以下内容:
// ./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
?module.export
获取什么内容.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;
关于javascript - 如何使用 Express 4 路由器的 Node 模块和需求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25873308/