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相关的。