Sails js:服务variables初始化
下面的代码仅供参考。 假设我的服务名称incremented
,并且具有incrementCounter
函数
var counter = 0; module.exports = { incrementCounter: function (req, callback) { counter++; callback(null, counter); } }
正如你所看到的, var counter = 0
是在函数之外定义的,所以它可以在全部服务函数内全局访问。 现在,如果我并行调用服务两次,它给第一个电话是正确的,但第二个电话是给我2
。 当这个服务被调用时,variablescounter
不应该重新初始化为0
吗?
incremented.incrementCounter(req, function(error, response){ //response = 1 }); incremented.incrementCounter(req, function(error, response){ //response = 2 });
Sails只初始化一次服务:当你解除你的应用程序时。 可以很容易地certificate在console.log('service inits')
开始时将console.log('service inits')
或类似的东西放在一起,看看它只会被执行一次。
当这个服务被调用时,variables计数器不应该重新初始化为0吗?
编号中的require()
caching模块,所以后面的需求实际上并没有反复加载文件。 这很容易testing,只需在服务顶部添加一个console.log('hi')
。
你真的不应该像这样定义全局variables,所以这更像是一个普通的node.js编程问题,并不是真正的sails.js相关的。