Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Express 4路由器的节点模块和要求_Javascript_Node.js_Express_Url Routing_Node Modules - Fatal编程技术网

Javascript 如何使用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; 现在,我想在其中

我使用了一个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;
现在,我想在其中添加以下路线

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;