node.js – 如何直接调用Connect中间件?

发布时间:2020-09-30 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了node.js – 如何直接调用Connect中间件?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样一个快速路线:

app.get('/',auth.authOrDie,function(req,res) {
    res.send();
});

其中authOrDie函数定义如下(在我的auth.js模块中):

exports.authOrDie = function(req,res,next) {
    if (req.isAuthenticated()) {
        return next();
    } else {
        res.send(403);
    }
});

现在,当用户未经过身份验证时,我想验证http请求是否具有授权(基本)标头.为此,我想使用伟大的连接中间件basicAuth().

如您所知,Express建立在Connect之上,因此我可以使用express.basicAuth.

basicAuth通常用于:

app.get('/',express.basicAuth(function(username,password) {
    // username && password verification...
}),res) {
    res.send();
});

但是,我想在我的authOrDie函数中使用它:

exports.authOrDie = function(req,next) {
    if (req.isAuthenticated()) {
        return next();
    } else if {
        // express.basicAuth ??? ******
    } else {
        res.send(403);
    }
});

******如何使用良好的参数调用basicAuth函数(req?res?next?…).

谢谢.

解决方法

调用express.basicAuth函数会返回要调用的中间件函数,因此您可以像这样直接调用它:

exports.authOrDie = function(req,next) {
    if (req.isAuthenticated()) {
        return next();
    } else {
        return express.basicAuth(function(username,password) {
            // username && password verification...
        })(req,next);
    }
});

总结

以上是编程之家为你收集整理的node.js – 如何直接调用Connect中间件?全部内容,希望文章能够帮你解决node.js – 如何直接调用Connect中间件?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!