覆盖整个应用程序中的每个 res.render 到 res.json
Override every res.render to res.json in the whole app
我想将整个应用程序的每个 res.render
转换为 res.json
。我这样做的原因是为了避免仅在开发环境中出现错误代码,我想 return JSON 而不是 HTML.
我找到了这个 question and following the solution 我认为它适用于:
const renderToJson = function(req, res, next) {
res.render = function(view, options, callback) {
res.status(200).json(res, view, options, callback);
};
};
app.use(renderToJson);
或
const renderToJson = function(req, res, next) {
const _render = res.status(200).json;
res.render = function(view, options, callback) {
_render.call(res, view, options, callback);
};
};
app.use(renderToJson);
但不幸的是它没有。我继续收到 HTML,没有任何错误。
我可以得到我想要的
const renderToJson = function(req, res, next) {
let _render = res.render;
res.render = function(view, options, callback) {
this.json(options);
};
next();
};
app.use(renderToJson);
保持我的回复未获批准,因为这可能有缺点。
我想将整个应用程序的每个 res.render
转换为 res.json
。我这样做的原因是为了避免仅在开发环境中出现错误代码,我想 return JSON 而不是 HTML.
我找到了这个 question and following the solution 我认为它适用于:
const renderToJson = function(req, res, next) {
res.render = function(view, options, callback) {
res.status(200).json(res, view, options, callback);
};
};
app.use(renderToJson);
或
const renderToJson = function(req, res, next) {
const _render = res.status(200).json;
res.render = function(view, options, callback) {
_render.call(res, view, options, callback);
};
};
app.use(renderToJson);
但不幸的是它没有。我继续收到 HTML,没有任何错误。
我可以得到我想要的
const renderToJson = function(req, res, next) {
let _render = res.render;
res.render = function(view, options, callback) {
this.json(options);
};
next();
};
app.use(renderToJson);
保持我的回复未获批准,因为这可能有缺点。