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

DoraCMS

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

文档详情

第6天 路由功能——query.js 插件开发

doramart 2024-04-29 02:43:23 技术文档232034
query.js的作用很简单,就是把 url 问号后的参数,转换为json对象,然后保存在req.query中即可。

query.js 插件开发

query.js的作用很简单,就是把 url 问号后的参数,转换为json对象,然后保存在req.query中即可。

我们知道,所有的插件都会通过app.use(middle)的形式加入,而插件的写法是function middle(req,res,next){ }。所以第一步就要在lib目录下建立一个query.js文件。下面是插件的源代码和说明。

var url = require("url"),
    qs = require("querystring");

function query(req,res,next){
    var querystring = url.parse(req.url).query; // 请求参数部分
    // 判断是否有参数
    if(querystring){
        var queryObj = qs.parse(querystring);  // 转换为json格式
        req.query = queryObj;  // 赋值
    }

    next();
}

module.exports = query;

这个中间件,使用了node.js核心模块 querystring,它有个方法parse可以把字符串形式的查询参数字符串,转换为json格式。

最后我们修改stuwebfk/index.js 加入以下代码

exports.App = require("./lib/App");
exports.static = require("./lib/static");
exports.query = require("./lib/query");

这样外界就可以通过require得到query模块了。

下面我们做一个例子,用来测试query插件的作用。

var App = require("../..").App,
    query = require("../..").query,
    app = new App;

    // 加入query中间件
    app.use(query);

    app.get("/about",function(req,res){
        res.write("my name is "+req.query.name);
        res.end();
    })

    app.listen(3000);

运行程序,并打开浏览器,输入 localhost:3000/about?name=okok , 这时候浏览器的内容应该是 

my name is okok

思考一下整个插件的开发过程,并自己动手实际的开发,然后进行下一步的开发。下一节,我们要通过req.params的形式得到:xxx形式的url参数。

文章评论

取消回复
登录 参与评论

评论列表(