2014-03-24 32 views
0

我在主頁上有一個鏈接。無論何時用戶點擊鏈接並加載頁面,我都希望收集用戶代理詳細信息並將其保存在數據庫中。
Node.js:當頁面加載時寫入數據庫

我知道它可以很容易地用PHP來完成像這樣的東西:

<?php 
    mysql_connect('server', 'username', 'password'); 
    mysql_select_db('databasename'); 
    $cQuery = "insert into TRackTable (Source, Browser, Datetime) values (''" . mysql_real_escape_string(stripslashes($_GET['q'])) . "', '" . mysql_real_escape_string(stripslashes($_SERVER['HTTP_USER_AGENT'])) . "', '" . mysql_real_escape_string(stripslashes($_SERVER['REMOTE_ADDR'])) . "', now())"; 
    mysql_query($cQuery); 
    ?> 

是否有可能與節點?
或者我必須收集所有信息並向節點js服務器發佈請求。然後將其寫入數據庫。

回答

0

這很簡單,如果你使用快遞。

只需使用req.headers['user-agent']即可訪問用戶代理信息。

,如果你安裝的UserAgent NPM

https://github.com/biggora/express-useragent

這裏是從GitHub鏈接的示例

var http = require('http') 
    , useragent = require('express-useragent'); 

var srv = http.createServer(function (req, res) { 
    var source = req.headers['user-agent'], 
    ua = useragent.parse(source); 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end(JSON.stringify(ua)); 

//ua JSON object has the user agent information that can be used to store in the DB 
}); 

srv.listen(3000),這將是比較容易;

+0

我將如何獲得服務器端的用戶代理?鏈接頁面不在節點服務器上託管。這只是頁面上的'href'。 –

+0

在這種情況下,您將不得不將信息發佈到node.js服務器 – Kishore