Dotos пре 9 година
родитељ
комит
f7735a7b45
8 измењених фајлова са 104 додато и 65 уклоњено
  1. 27 4
      app.js
  2. 3 0
      configs/config.js
  3. 12 23
      routes/v1.js
  4. 12 32
      routes/welcome.js
  5. 28 0
      utils/logUtils.js
  6. 18 2
      utils/utils.js
  7. 1 1
      views/layout.pug
  8. 3 3
      views/welcome.pug

+ 27 - 4
app.js

@@ -1,9 +1,11 @@
 var express = require('express');
+var request = require('request');
 var path = require('path');
 var favicon = require('serve-favicon');
 var logger = require('morgan');
 var cookieParser = require('cookie-parser');
 var bodyParser = require('body-parser');
+var logUtils = require('./utils/logUtils');
 
 //Welcome Page
 var welcome = require('./routes/welcome');
@@ -25,8 +27,28 @@ app.all('*', function(req, res, next) {
     res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
     res.header("X-Powered-By", '1.0.0');
     res.header("Vary", "Origin");
-    // res.header("Content-Type", "application/json;charset=utf-8");
-    console.log('ref:' + req.header('referer'));
+
+    var protocol = req.protocol;
+    var host = req.hostname;
+    var ip = req.ip;
+    var ref = req.get('referer');
+    var originalUrl = req.originalUrl;
+    var logs = {
+        IP: ip,
+        Host: host,
+        Referer: ref,
+        //Protocol: protocol,
+        Location: '',
+        OriginalUrl: originalUrl
+    };
+    if (originalUrl.indexOf('.css') === -1 && originalUrl.indexOf('.js') === -1) {
+        logUtils.log(logs);
+    }
+    var str = '';
+    for (var i in logs) {
+        str += (i + '=' + logs[i] + '&');
+    }
+    request('https://api.ioliu.cn?' + str);
     next();
 });
 // view engine setup
@@ -39,7 +61,7 @@ app.use(logger('dev'));
 app.use(bodyParser.json());
 app.use(bodyParser.urlencoded({ extended: false }));
 app.use(cookieParser());
-app.use(express.static(path.join(__dirname, 'public')));
+app.use('/static/', express.static(path.join(__dirname, 'public')));
 
 app.use('/', welcome);
 app.use('/v1', v1);
@@ -60,6 +82,7 @@ if (app.get('env') === 'development') {
     app.use(function(err, req, res, next) {
         res.status(err.status || 500);
         res.send({
+            code: err.status,
             message: err.message,
             error: err
         });
@@ -71,7 +94,7 @@ if (app.get('env') === 'development') {
 app.use(function(err, req, res, next) {
     res.status(err.status || 500);
     res.send({
-        status:err.status,
+        code: err.status,
         message: err.message,
         error: {}
     });

+ 3 - 0
configs/config.js

@@ -0,0 +1,3 @@
+module.exports = {
+    welcome: 'JsonBird - 业界领先的远程 JSON 代理服务'
+};

+ 12 - 23
routes/v1.js

@@ -8,36 +8,25 @@ router.all('*', function(req, res, next) {
 });
 
 router.get('/', function(req, res, next) {
-    
-    var protocol = req.protocol;
-    var host = req.hostname;
-    var ip = req.ip;
-    var ref = req.get('reference');
-    var originalUrl = req.originalUrl;
 
+    var originalUrl = req.originalUrl;
+    var ip = req.ip;
     if (originalUrl == /v1/) {
-        ip2address(ip,function(data){
+        ip2address(ip, function(data) {
             var params = {
-                code:200,
-                ip:ip,
+                code: 200,
+                ip: ip,
                 info: 'Please Set URL Like This: ' + protocol + '://' + host + '/v1/?url=http[s]://YourWantProxyUrl.com'
             };
-            if(data){
-                params['location']='来自'+data.area+data.location;
+            if (data) {
+                params['location'] = data.area + data.location;
             }
             return res.send(params);
         });
-        
-    }else{
+
+    } else {
         var url = originalUrl.replace('/v1/?url=', '');
         url = url.indexOf('?') === -1 ? url.replace('&', '?') : url;
-        console.log('------------------log start---------------');
-        console.log('date:'+new Date());
-        console.log('ip:' + ip);
-        console.log('ref:' + ref);
-        console.log('path:' + req.path);
-        console.log('req:' + url);
-        console.log('------------------log end---------------');
         getJSON(url, function(data) {
             if (req.query.callback) {
                 return res.jsonp(data);
@@ -58,13 +47,13 @@ function getJSON(url, callback, next) {
     });
 }
 
-function ip2address(ip,callback){
-    request('http://apis.juhe.cn/ip/ip2addr?ip='+ip+'&key=28c0a6a5eb9cca3f38bc5877a83c9868', function(err, res, body) {
+function ip2address(ip, callback) {
+    request('http://apis.juhe.cn/ip/ip2addr?ip=' + ip + '&key=28c0a6a5eb9cca3f38bc5877a83c9868', function(err, res, body) {
         if (!err && res.statusCode == 200) {
             body = JSON.parse(body);
             callback && callback(body['result']);
         } else {
-            console.log(' / request info:'+err);
+            console.log(' / request info:' + err);
             callback && callback();
         }
     });

+ 12 - 32
routes/welcome.js

@@ -1,54 +1,34 @@
 var express = require('express');
 var request = require('request');
+var config = require('../configs/config');
 var router = express.Router();
 
 /* GET home page. */
 router.get('/', function(req, res, next) {
-    // res.header("Access-Control-Allow-Origin", "*");  
-    // res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");  
-    // res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");  
-    // res.header("X-Powered-By",'3.2.1');
-    // res.header("Vary","Origin");
-    // res.header("Content-Type", "application/json;charset=utf-8");  
-    // var protocol = req.protocol;
-    // var host = req.host;
-    // var ip = req.ip;
-    // return res.send({
-    //     code:200,
-    //     info:'Welcome, This is a wonderful site',
-    //     ip:ip,
-    //     links:{
-    //         v1: protocol + '://' + host + '/v1/',
-    //         home:'https://github.com/xCss/JsonBird',
-    //         HowToUse:'https://github.com/xCss/JsonBird#how-to-use',
-    //         issue:'https://github.com/xCss/JsonBird/issues'
-    //     }
-    // });
     var ip = req.ip;
-    ip2address(ip,function(data){
+    ip2addr(ip, function(data) {
         var params = {
-            title:'Welcome | JsonBird - 业界领先的远程 JSON 代理服务'
+            title: 'Welcome | ' + config.welcome
         };
-        if(data){
-            params['address']='欢迎来自'+data.area+data.location+'的朋友';
+        if (data) {
+            params['address'] = '欢迎来自' + data.area + data.location + '的朋友';
         }
-        res.render('welcome',params);
+        res.render('welcome', params);
     });
-    //res.render('welcome',{title:'Welcome | JsonBird - 业界领先的远程 JSON 代理服务'});
-    
+
 });
 
-function ip2address(ip,callback){
-    request('http://apis.juhe.cn/ip/ip2addr?ip='+ip+'&key=28c0a6a5eb9cca3f38bc5877a83c9868', function(err, res, body) {
+function ip2addr(ip, callback) {
+    request('http://apis.juhe.cn/ip/ip2addr?ip=' + ip + '&key=28c0a6a5eb9cca3f38bc5877a83c9868', function(err, res, body) {
         if (!err && res.statusCode == 200) {
             body = JSON.parse(body);
             callback && callback(body.result);
         } else {
-            console.log(' / request info:'+err);
-            callback && callback(null);
+            console.log(' / request info:' + err);
+            callback && callback();
         }
     });
 }
 
 
-module.exports = router;
+module.exports = router;

+ 28 - 0
utils/logUtils.js

@@ -0,0 +1,28 @@
+module.exports = {
+    log: function(params) {
+        console.log(print(params));
+    },
+    warn: function(params) {
+
+    },
+    error: function(params) {
+
+    },
+}
+
+var print = function(params) {
+    var arr = ['-------------------------------------'];
+    var date = new Date();
+    var month = date.getMonth() + 1;
+    var day = date.getDay();
+    var hours = date.getHours();
+    var minutes = date.getMinutes();
+    var seconds = date.getSeconds();
+    var datestr = date.getFullYear() + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day) + ' ' + (hours < 10 ? '0' + hours : hours) + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds) + ' ' + date.getMilliseconds() + 'ms';
+    for (var i in params) {
+        arr.push(i + ': ' + params[i]);
+    }
+    arr.push('Time: ' + datestr);
+    arr.push('-------------------------------------');
+    return arr.join('\n');
+}

+ 18 - 2
utils/utils.js

@@ -1,3 +1,19 @@
-export default {
-    
+module.exports = {
+    urlParams: {
+        // set: function(params) {},
+        // get: function(k) {
+        //     var url = window.location.href
+        //     if (url.indexOf('#!/') > -1) url = url.replace('#!/', '');
+        //     var search = url.split('?')[1].split('&');
+        //     for (var i in search) {
+        //         var temp = search[i].split('=');
+        //         params[temp[0]] = temp[1];
+        //     }
+        //     console.log(params)
+        //     if (k) return params[k];
+        //     return params;
+        // },
+        // toString: function(params) {},
+        // toUrl: function() {}
+    }
 }

+ 1 - 1
views/layout.pug

@@ -2,7 +2,7 @@ doctype html
 html
   head
     title= title
-    link(rel='stylesheet', href='/css/style.css')
+    link(rel='stylesheet', href='/static/css/style.css')
     meta( name="viewport",content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0")
   body
     block content

+ 3 - 3
views/welcome.pug

@@ -8,9 +8,9 @@ block content
 			div.cover.action
 				a.btn.btn-ghost-light(href="/v1/?url=http://www.bing.com/HPImageArchive.aspx?format=js&idx=16&n=1") Quick Start
 
-	script(src="/libs/three/three.min.js")
-	script(src="/libs/three/Projector.js")
-	script(src="/libs/three/CanvasRender.js")
+	script(src="/static/libs/three/three.min.js")
+	script(src="/static/libs/three/Projector.js")
+	script(src="/static/libs/three/CanvasRender.js")
 	//- script(src="/libs/three/stats.min.js")
 	script.
 		var SEPARATION = 200, AMOUNTX = 30, AMOUNTY = 30;