javascript - 有没有办法查看谁调用了 nodejs 控制器?
问题描述
我们有很多页面/站点调用不同的 nodejs 控制器。
例子:
//
// Get template data
//
$http({
method: 'POST',
url: globalSetting.serverURL + 'getMailTemplate',
headers: { 'Content-Type': 'application/json' },
data: {
users: $scope.vm.user,
booking: $scope.vm.booking
}
}).then((response) => {
// whatever
}
控制器有没有办法查看呼叫来自哪里?
哪个页面调用或哪个 URL 或哪个用户或?
解决方案
如果您可以访问 Node.js express 中的 req 对象,您可以从中获取一些有用的调用者详细信息,例如 IP 地址、位置等。
const express = require('express');
const geoip = require('geoip-lite');
var app = express();
app.set('trust proxy', true);
function getCallerDetails(req) {
const geo = geoip.lookup(req.ip);
const result = {
ip: req.ip,
browser: req.headers["user-agent"],
language: req.headers["accept-language"],
country: (geo ? geo.country: "Unknown"),
region: (geo ? geo.region: "Unknown"),
position: (geo ? geo.ll: "Unknown")
}
return result;
}
app.get('/getcallerdetails', function(req, res){
let result = getCallerDetails(req);
console.log('Headers: ' + JSON.stringify(result.headers));
console.log('IP Address: ' + JSON.stringify(result.ip));
console.log("Browser/User-Agent: " + result.browser);
console.log("Language: " + result.language);
console.log("Country: " + result.country);
console.log("Region: " + result.region);
console.log(result);
res.status(200);
res.header("Content-Type",'application/json');
res.end(JSON.stringify(result, null, 4));
});
app.listen(3000);
推荐阅读
- git - Jenkins 构建不是由 Git 客户端钩子触发的
- linux - Linux 在加载和卸载内核模块后冻结
- winforms - 您在哪里为 winforms MVC 解决方案中的解决方案生成数据源?
- python - 我在 Python TCP 程序中找不到我的逻辑或语法错误
- javascript - reactjs中如何访问另一个组件的功能?
- ide - PhpStorm 打开文件并替换之前的
- java - 依赖注入与工厂结合
- sql - 没有 else 或什么都不做的 SQL 查询案例?
- python - 将numpy数组转换为base64
- git - 如何检查脚本是否从正确的 git 根文件夹运行?