2016-12-13 46 views
1

夥計們我有下面的代碼,它應該增加計數器,每次有人連接到服務器並在控制檯中發佈消息,但它只增加一次,你能幫我?每次有人連接到服務器時遞增計數器

'use strict' 
//Require express 
var express=require('express'); 
//Trigger express 
var app=express(); 
var counter=0; 
//Set up the route URL 
app.get('/', function(req, res){ 
    res.send("<h1>You have connected</h1>"); 
}); 

//set up the port 
app.listen(3000,function(){ 

//increment counter 

    counter+=1; 
    console.log("you have connected " + counter + " times"); 
}) 
+0

您正在連接到端口3000上的路線,還是隻是'/'上的快速路線? – adeneo

+0

我連接到端口3000,路由是/它可能是/ home或/ dog或/ blabla –

回答

0

那麼你必須計數器變量存儲在像數據庫或文本文件,否則它將始終對每個請求

+0

本地存儲工作的任何想法?你能舉個例子嗎? –

+0

本地存儲將在客戶端工作。你使用的數據庫(mongoDB,postgreSQL等?) – NoobSter

+0

還沒有你看到的代碼是我現在所有的 –

1

您需要將您的櫃檯移到響應內部設置爲零一些持續性存儲。

app.get('/', function(req, res){ 
    counter++; 
    res.send("<h1>You have connected "+counter+ " times </h1>"); 
}); 

每當加載頁面時會增加,不只是當你啓動它,並開始與app.listen聽這樣()。

1
  • 監聽回調僅在服務器開始監聽時被調用一次。
  • 只要您的服務器處於活動狀態,就不需要持續變量。
  • 將計數器放置在app.get()塊中將僅適用於連接到路由'/'的客戶端。

理想情況下,你需要一個聽衆那邊添加到「連接」事件(表現對象從HTTP繼承,所以服務器有此事件)的服務器,並增加計數器:

app.on('connect', function() { 
    counter++; 
}); 

鋤頭這有助於。