第6天 路由功能——query.js 插件开发
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参数。
很赞哦! ( 0
)