CNode

如何实现访问量统计功能

Ssunuxreg发布于13 年前最后回复13 年前6 回复10092 浏览0 收藏

nodejs中不想jsp有application对象,也没有<%!%>这样的全局初始化语句。怎么实现流量统计功能呢。如果将计数器初始化的语句放在网页中(var count=0)那么每次用户请求页面是又会赋值为0,怎么样才能持续计数呢?

查看回复

回复 (6)

C
chloe#1·13 年前

你可以写一个var counter = require('counter'); counter.count ++

S
sunuxreg#2·13 年前
引用 chloe你可以写一个var counter = require('counter'); counter.count ++

我写了这个 #count.js var fc=function(){ var count=0; function f(){ count++ ; return count; } return f; } module.exports=fc;

然后

#app.js

exports.count= function(req, res){
  var fc=require('count');

var counter=fc(); console.log(process.pid) ; res.end(counter().toString());

}

但是还是每次输出都是1,刷新也不会增加。

C
chloe#3·13 年前

var count 不要放在那个fc里面啊 放在外面

S
sunuxreg#4·13 年前
引用 chloevar count 不要放在那个fc里面啊 放在外面

哦,好了,谢谢,但是count放在fc里面不能形成闭包呢?

L
leizongmin#5·13 年前
引用 chloevar count 不要放在那个fc里面啊 放在外面

@sunuxreg 是形成闭包了,但是它们不是同一个闭包。 你应该这样写:

var count = 0;
function fc () {
  count++;
  return count;
}

然后每次调用 fn() 就会返回+1之后的值了

S
sunuxreg#6·13 年前
引用 chloevar count 不要放在那个fc里面啊 放在外面

@leizongmin 哦,好的,谢谢

参与回复
登录后即可参与回复。登录