javascript - 如何使用 Express 4 路由器的 Node 模块和需求

标签 javascript node.js express url-routing node-modules

我使用了 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);
});

我认为它需要访问apppassport。您能否告诉我路由文件 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/

相关文章:

javascript - 将动态 Html 内容写入页面或弹出窗口

javascript - 使用 mapstatetoprops 提取数据

javascript - jQuery 中 val.length 和 val().length 的区别?

node.js - Dynamoose 中 Schema.Types.ObjectId 的等效项

javascript - 创建一个 Restful API 端点,以便我可以将我的 Angular 8 应用程序连接到它

javascript - 如果浏览器未连接到互联网,则隐藏本地 html 文档中的内容

css - 编辑 Microsoft ChatBot UI 设计

node.js - 在 firebase 函数中编写响应操作时出现问题

windows - 保持 Node 运行的基本 Windows 脚本

node.js - MEAN js 如何处理身份验证?