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参数。