Nodejs 및 ExpressJS를 익히고 있습니다. 나는 ExpressJS와 2 노드 모듈 (request-ip과 geoip2)을 사용하여 geolocation에 대한 클라이언트 IP 주소를 얻은 다음 AngularJS (1.x)를 사용하여 브라우저에서 geolocation을 출력하려고합니다.Nodejs, Express 및 AngularJS를 사용하여 브라우저에 IP 표시
지금까지 내 Nodejs 및 Expressjs 코드 나는
var express = require('express');
// require request-ip and register it as middleware
var requestIp = require('request-ip');
// to convert the ip into geolocation coords
var geoip2 = require('geoip2');
// Init app
var app = express();
var port = process.env.PORT || 8000;
geoip2.init(); // init the db
//app.use(requestIp.mw({ attributeName: 'myCustomAttributeName'}));
var ip = '207.97.227.239';//67.183.57.64, 207.97.227.239
// respond to homepage req
app.get('/', function (req, res, next) {
//var ip = req.myCustomAttributeName;// use this for live
//var ip = '207.97.227.239';/* use this for testing */
console.log('requestIP is ' + ip);
next();
// geolocation
geoip2.lookupSimple(ip, function(error, result) {
if (error) {
console.log("Error: %s", error);
}
else if (result) {
console.log(result);//ipType was causing console.log duplication, IDK why
}
});
});
// set static folder
app.use('/', express.static(__dirname + '/public'));
app.listen(port, function(){
console.log('user location app is running');
});
을 그리고 각도를위한 나는 각 컨트롤러에
angular.module('UserLocation', []);
angular.module('UserLocation')
.controller('MainController', MainController);
MainController.$inject = ['$http'];
function MainController($http) {
var vm = this;
vm.result = '';
vm.message = 'Hello World';
vm.getLocation = function() {
console.log();
return $http.get('localhost:8000', {
params: {result: result}
})
.then(function(result){
console.log(result);
})
};
};
vm.result
을 가지고 수행하는 geoip2 노드 모듈의 결과입니다 지구 위치.
콘솔에서 result
을 얻을 수는 있지만 문제는 Angular로 전달하는 방법을 모르겠습니다. $http
서비스를 사용하고 있지만 여기에서 어디로 가야할지 모르겠습니다 ...?
result
을 geoip2 노드 모듈에서 $ http를 사용하여 각도 컨트롤러로 전달하려면 어떻게해야합니까?
사용'$ http' 서버에서 – charlietfl
@charlietfl를 검색하는 당신이 줄 수 그 작은 예가 나를 시작하게하는 것일까 요? Nodejs를 처음 접했을 때. – user3125823