Javascript 在特定情况下删除我的json字段
我有一个ExpressJS控制器,它列出了我的所有用户 userCtrl.get:Javascript 在特定情况下删除我的json字段,javascript,node.js,express,Javascript,Node.js,Express,我有一个ExpressJS控制器,它列出了我的所有用户 userCtrl.get: get(req, res, next) { var func = function(err, data) { if (err) return next(err); return res.json(data); }; if (req.params[this.idName]) this._getById(req.params[this.idName], func); else
get(req, res, next) {
var func = function(err, data) {
if (err) return next(err);
return res.json(data);
};
if (req.params[this.idName])
this._getById(req.params[this.idName], func);
else
this._getAll(func);
}
_getById(id, fn) {
this.ObjectClass.findById(id, fn);
}
_getAll(fn) {
this.ObjectClass.findAll(fn);
}
我想从另一条路调用它,这样res.json()将过滤此json的一个字段
比如:
router.get ('/services/:serviceKey/authBridge/users', function(req, res, next) {
function anonJs(x) {
x.forEach(s => s.credential = null);
res.json(x);
}
res.json = anonJs;
userCtrl.get(req, res, next);
});
问题是,对于这最后一段代码,我最终得到了一个递归,我调用了
res.json
,它现在被定义为anonJS
,在替换之前必须存储对旧函数的引用
router.get ('/services/:serviceKey/authBridge/users', function(req, res, next) {
var json = res.json;
res.json = function(x) {
x.forEach(s => s.credential = null);
json(x);
}
userCtrl.get(req, res, next);
});