民間, 嘗試爲每個API調用設置交易ID。以下作品:NodeJS Express,添加交易標識
var cls = require('continuation-local-storage');
var uuid = require('node-uuid');
var namespace = cls.createNamespace('foo');
var tokenMiddleware = function tokenMiddleware(req, res, next){
namespace.bindEmitter(req);
namespace.bindEmitter(res);
namespace.run(function() {
namespace.set('tid', tid);
next();
});
};
現在,當我嘗試添加的附加信息(從蒙戈返回),它失去了語境:
var cls = require('continuation-local-storage');
var uuid = require('node-uuid');
var namespace = cls.createNamespace('foo');
var tokenMiddleware = function tokenMiddleware(req, res, next){
mongo.fetchId(authId, function (result) {
namespace.bindEmitter(req);
namespace.bindEmitter(res);
namespace.run(function() {
namespace.set('tid', tid);
namespace.set('somethingfromDB',result.something);
next();
});
});
};
交易ID不可再往下,其不確定...第一個例子如何工作,第二個例子不工作?
我在做什麼錯?我懷疑問題必須在next()上下文中做些什麼。 Express v4。
謝謝!
tid在哪裏定義? – DrakaSAN 2014-09-25 08:10:27
'result'對象確實擁有'something'屬性嗎? – 2014-09-25 12:37:07
這裏的評論建議你也許應該發佈一個完整的代碼示例。我的意思是一個最小的快速/ mongo設置。 – nha 2014-09-25 19:03:38