每次有人连接到服务器时递增计数器

时间:2016-12-13 21:48:14

标签: javascript node.js server

伙计我有以下代码,它应该在每次连接到服务器并在控制台中发布消息时递增计数器,但它只增加一次,你能帮助我吗?

'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");
})

3 个答案:

答案 0 :(得分:1)

您需要将计数器移至响应内部。

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

这样一旦页面加载,它就会递增,而不仅仅是当你启动它并开始用app.listen()监听时。

答案 1 :(得分:1)

    当服务器开始监听时,
  • 监听回调只被调用一次。
  • 只要您的服务器处于活动状态,就不需要持久化变量。
  • 将计数器放置在app.get()块内仅适用于连接到路由&#39; /&#39;
  • 的客户端。

理想情况下,您需要在“连接”中添加一个监听器。事件(express对象继承自HTTP,因此服务器有此事件)服务器,并在那里递增计数器:

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

锄头有帮助。

答案 2 :(得分:0)

你必须将计数器变量存储在某些持久存储器中,如数据库或文本文件,否则每次请求时它总是设置为零