Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法知道谁调用了nodejs控制器?_Javascript_Node.js - Fatal编程技术网

Javascript 有没有办法知道谁调用了nodejs控制器?

Javascript 有没有办法知道谁调用了nodejs控制器?,javascript,node.js,Javascript,Node.js,我们有很多页面/站点调用不同的nodejs控制器 例如: // // Get template data // $http({ method: 'POST', url: globalSetting.serverURL + 'getMailTemplate', headers: { 'Content-Type': 'application/json' }, data: { users: $scope.vm.user, bo

我们有很多页面/站点调用不同的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);

您只添加了
js
code,但没有添加
node js
,您可以检查
req
对象,您可以从它那里获得详细信息Hanks Sravan我将尝试这样做,这正是我需要的!!-非常感谢。(想知道为什么人们会否决你的问题,因为这是一个合法的问题,有合法的答案?!?)