用nodejs搭建渠道跳轉頁面分發統計服務,統計的資料主要在crate索引庫中插入。
1、先介紹一下crate庫
crate data 是乙個開源的大規模的可伸縮的資料儲存系統,無需任何系統管理需求。提供強大的搜尋功能。用於儲存各種**資料、
非結構化資料和二進位制物件,並可通過 sql 進行檢索。易於安裝和使用,支援高可用性和實時大規模並行訪問和處理。crate 特別適合
用於 docker 環境中。
2、首先要明白我們需要哪些資料,然後根據要記錄的資料來設計索引庫表結構,包括記錄表和配置表,如圖是我設計的表結構
3、然後開始用nodejs開始構建貼出主要的**loginm.js
var request = require('request');
var url = require('url');
var moment = require('moment');
var cookies = require('cookies');
var uuidv1 = require('uuid/v1');//通用唯一識別碼
module.exports =
} var resinfo = urlinfo();
return resinfo;
'~~~~'+resinfo.pathname+'~~~~'+resinfo.query.id+'~~~~'+resinfo.query.name+'~~~~'+resinfo.query.desc+'~~~~'+resinfo.time);
},//獲取訪問者的ip
getclientip: function
(req)
return ipaddress;
},//判斷使用者的終端
checkclinetmodel: function
(req)
}var deviceagent=brows(req.headers['user-agent']);
if (deviceagent.trident)
if (deviceagent.presto)
if (deviceagent.webkit)
if (deviceagent.gecko)
if (deviceagent.mobile && deviceagent.ios)
if (deviceagent.mobile && deviceagent.android)
if (deviceagent.mobile && deviceagent.iphone)
if (deviceagent.mobile && deviceagent.ipad)
return device;
},//給使用者做標記這裡主要用到uuid,然後存到cookie裡面,來判斷是不是同乙個使用者
setcookie: function
(req, res));
c_uuido = uuid;
}return c_uuido;}}
3、然後向crate庫中插入資料由於crate庫能直接以httpkpi的形式,操作表結構所以直接用request模組進行操作
var request =
require('request');
var logicm =
require('./logic');
module.exports =
request(,
body: json.stringify()
}, function(error, response, body) else
}});
}}
插入的時候注意兩點:
1、插入的時候要嚴格執行sql語句的語法
2、向crate庫中插入資料的時候,要轉換成字串的格式插入
用HTML JS PHP方式實現頁面延時跳轉
web開發中經常會遇到頁面跳轉或延時跳轉的需求,掌握各種頁面跳轉方式非常必要。以下是我總結有用html js php三類方式實現跳轉的方法,例子皆為三秒後跳轉到 index.php 頁面。1,html方法 在head 中新增標籤 2,js控制跳轉方法 a.location直接加鏈結方式 b.loca...
用HTML JS PHP方式實現頁面延時跳轉
web開發中經常會遇到頁面跳轉或延時跳轉的需求,掌握各種頁面跳轉方式非常必要。以下是我總結有用html js php三類方式實現跳轉的方法,例子皆為三秒後跳轉到 index.php 頁面。1,html方法 在head 中新增標籤 2,js控制跳轉方法 a.location直接加鏈結方式 b.loca...
用node js 搭建 webrtc 信令服務
0 webrtc開源專案,基本只有流 部分,而沒有信令部分,裡面的example是有信令,不過是google的,不太合用,還要裝乙個google的伺服器,貌似很是龐大,如果功能簡單,只是打 考慮自行開發乙個 小型信令伺服器。node v6.9.1 linux x64.tar.xz 2 解壓安裝包到 ...