簡體   English   中英

如何在node.js中獲取有關客戶端的信息

[英]How to get information about the client in node.js

在這個非常簡單的例子中:

var sys = require("sys"),
    http = require("http");

http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.end("Hello World!");
}).listen(8080);

sys.puts("Server running at http://localhost:8080/");

1.)我可以從客戶那里獲得什么樣的信息? 喜歡瀏覽器,屏幕分辨率等?

2.)如何從客戶端向服務器發送信息,如參數?

謝謝!

1)推薦人URL,IP地址,用戶代理,屏幕大小和其他統計數據 您也可以獲得地理位置,但這涉及更多。

2)標題中有一些數據可用,因此每次請求都會發送這些數據 - 屏幕大小等其他數據有點棘手,因此您需要發送一個ajax請求來發送它。

// Somewhere on your page(s) - here we use jQuery
$(document).ready(function(){   
  // Check if they have been logged
  if ($.cookie('logged') == null ){
    // Send screen size and whatever else that is not available from headers
    $.post('/logger', { width: screen.width, height: screen.height }, function(res) {
      // Set cookie  for 30 days so we don't keep doing this
       $.cookie('logged', true, { expires: 30 }); 
    });
  } 
 });  

// Server side - example is an Express controller
exports.logger = function(req, res) {
  var user = {
    agent: req.header('user-agent'(, // User Agent we get from headers
    referrer: req.header('referrer'), //  Likewise for referrer
    ip: req.header('x-forwarded-for') || req.connection.remoteAddress, // Get IP - allow for proxy
    screen: { // Get screen info that we passed in url post data
      width: req.param('width'),
      height: req.param('height')
    }
  };
  // Store the user in your database
  // User.create(user)...
  res.end();
}

您是否閱讀過API文檔 req對象是一個http.ServerRequest對象,如此處所述。 它是HTTP,而像解決方案這樣的東西不是協議的一部分。 您可以獲得的是用戶代理,從那里您可以使用其他服務檢索更多信息。

請記住,node.js是一個獨立的應用程序 - 它不是在瀏覽器中運行 - 它是一個在JS解釋器中運行的HTTP Server應用程序。

您無法獲取屏幕分辨率信息,但可以從“請求標頭”“用戶代理”中獲取用戶代理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM