nix*_*get 6 audit middleware node.js express audit-logging
我正在寻找通用方法来审核我为某些 API 编写的快速中间件。
我想出了几种方法,但对我来说似乎没有那么有效。现在我只想登录到控制台或日志文件,但稍后我将查看数据存储。
使用诸如代码段中给出的中央函数来进行日志记录。这是记录 API 请求/响应的好方法,但在审核关键信息(例如审核用户注册中的用户 ID)时无济于事。或者在用户登录时审核电子邮件地址。
function auditUserAction(apiFunction) {
function jsonWrapper(funcToWrap, userAction) {
return function() {
userAction.jsonResponse = arguments[0];
return funcToWrap.apply(this, arguments);
}
}
return function() {
req = arguments[0];
res = arguments[1];
// Overriding json method so we can capture the json response
res.json = jsonWrapper(res.json, userAction);
userAction.url = req.url;
userAction.userId = req.headers.user_id;
userAction.referer = req.headers.referer;
userAction.browserAgent = req.headers['user-agent'];
result = apiFunction.apply(this, arguments);
userAction.responseStatusCode = res.statusCode;
userAction.responseBody = res.body;
logger.info("Action", userAction);
return result;
}
}
..........
router = require('express').Router();
router.post('/users', auditUserAction(createUser));
Run Code Online (Sandbox Code Playgroud)还有比这更好的策略吗?我在网上搜索过,但无论如何都找不到优雅地这样做。
| 归档时间: |
|
| 查看次数: |
1633 次 |
| 最近记录: |