express.query()是什么作用?
发布于 1 天前 作者 kaimZhou 357 次浏览 来自 问答

module.exports = function query(options) { var opts = Object.create(options || null); var queryparse = qs.parse; if (typeof options === ‘function’) { queryparse = options; opts = undefined; } if (opts !== undefined && opts.allowPrototypes === undefined) { // back-compat for qs module opts.allowPrototypes = true; } return function query(req, res, next){ if (!req.query) { var val = parseUrl(req).query; req.query = queryparse(val, opts); } next(); }; };

上面的作用是用来解析url的吧,但是当没有使用express.query()这个中间件的时候,req.query得到的结果还是一样的。所以产生了疑惑~~

1 回复
//application.js
var query = require('./middleware/query');
app.lazyrouter = function lazyrouter() {
  if (!this._router) {
    this._router = new Router({
      caseSensitive: this.enabled('case sensitive routing'),
      strict: this.enabled('strict routing')
    });

    this._router.use(query(this.get('query parser fn')));
    this._router.use(middleware.init(this));
  }
};

看源码默认已加载此中间件

回到顶部