欢迎您访问宜州一中 您可以登录 或注册
 
收藏本站 简繁转换
筑梦青春•唱响未来 -宜州区第一中学英文歌曲合唱比赛             一方天地育桃李,三尺讲台竞风采             宜州区一中在宜州博物馆举行“人杰地灵读宜州”故事分享会             宜州一中举行2024届中考百日誓师大会             龙腾启新 筑梦未来 ——宜州区第一中学欢庆2024年元旦文艺晚会             走进嘉联丝厂 畅享研学之乐 ——宜州区第一中学开展研学实践活动             2023年河池市宜州区第一中学/宜州区红卫学校家庭经济困难大学新生入学资助项目发放名册(第二批)             展科技志向,圆飞行梦想 ——宜州区一中2025届举行无人机大赛             2023年河池市宜州区第一中学\红卫学校 家庭经济困难大学新生入学资助项目发放名册(第一批)             法制进校园 以法促成长 ——宜州一中举行“三姐护蕾”法治进校园活动            

DoraCMS

您现在的位置是:首页>文档内容页

文档详情

第9天response 响应渲染 —跳转插件开发

doramart 2024-05-21 16:35:34 技术文档231200
跳转功能,顾名思义是打开一个链接,却跳转到另一个网址链接。看起来很神秘,其实都是在响应头信息做文章。 响应头的状态码设置为302,那么就表示要客户端进行跳转。

跳转插件开发

跳转功能,顾名思义是打开一个链接,却跳转到另一个网址链接。看起来很神秘,其实都是在响应头信息做文章。

响应头的状态码设置为302,那么就表示要客户端进行跳转。而跳转到哪里就需要指定响应头的Location。理论就这些,落到实处才是重点,下面我们就开发这个跳转插件。

module.exports = function(req,res,next){
    res.redirect = function(url){
        res.writeHead(302,{
            Location: location(req,url)
        })
        res.end();
    }
    next();    
}

// 返回要跳转的URL绝对地址
function location(req,url){
    // 如果是完整的网址
    if(/^http:\/\//.test(url)){
        return url;
    }else if(/^\//.test(url)){ // 如果是本地根目录网址
        return 'http://' + req.headers.host + url;
    }else{
        return 'http://' + req.headers.host + '/' + req.url + '/' + url;
    }  
}

哇!这代码有些复杂了,其实没什么,location方法是用来返回三种不同的url形式,我们用一下例子做个说明。

index.js中加入以下代码:

exports.text = require("./lib/redirect");

通过location方法,要达到的效果是:

下面做一个例子,来试验这几种用法:

var fk = require("../..")
   ,App = fk.App
   ,redirect = fk.redirect
   ,text = fk.text
   ,app = new App;

   app.use(fk.text);
   app.use(fk.redirect); // 加载跳转插件


    app.get("/url1",function(req,res){
        res.redirect("http://baidu.com");
    })

    app.get("/url2",function(req,res){
        res.redirect('/1url');
    })

    app.get("/url3",function(req,res){
        res.redirect("2url")
    })

    app.get("/1url",function(req,res){
        res.text("1 url");
    })

    app.get("/url3/:u",function(req,res){
        res.text(req.params.u);
    })


    app.listen(3000)

以下是视频演示



文章评论

取消回复
登录 参与评论

评论列表(