nodejs中不想jsp有application对象,也没有<%!%>这样的全局初始化语句。怎么实现流量统计功能呢。如果将计数器初始化的语句放在网页中(var count=0)那么每次用户请求页面是又会赋值为0,怎么样才能持续计数呢?
你可以写一个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,刷新也不会增加。
var count 不要放在那个fc里面啊 放在外面
哦,好了,谢谢,但是count放在fc里面不能形成闭包呢?
@sunuxreg 是形成闭包了,但是它们不是同一个闭包。 你应该这样写:
var count = 0; function fc () { count++; return count; }
然后每次调用 fn() 就会返回+1之后的值了
@leizongmin 哦,好的,谢谢
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
你可以写一个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
var counter=fc(); console.log(process.pid) ; res.end(counter().toString());
}
但是还是每次输出都是1,刷新也不会增加。
var count 不要放在那个fc里面啊 放在外面
哦,好了,谢谢,但是count放在fc里面不能形成闭包呢?
@sunuxreg 是形成闭包了,但是它们不是同一个闭包。 你应该这样写:
然后每次调用 fn() 就会返回+1之后的值了
@leizongmin 哦,好的,谢谢