从控制器的操作中访问session
属性很简单。
var SomeController = {
someAction: function(req, res) {
// no we have access to session object
if (!req.session.hasOwnProperty('flash')) {
req.session.flash = [];
}
}
}
但是我需要从服务中访问session
对象。
示例文件app/services/my_servise.js
:
module.exports = {
some_method: function() {
// here at i need to get access to session object?
// is it possible?
}
}
答案 0 :(得分:1)
请参阅this answer,详细讨论为什么您无法在模型类方法中访问会话参数;完全相同的答案适用于服务。结果是,如果您希望访问服务代码中的会话,则必须将请求对象作为参数传递给您的服务方法。
答案 1 :(得分:0)
解决方案在很大程度上取决于调用my_service.js的时间以及使用它的目的。这是最简单的一个:
var my_service, SomeController;
my_service = require('./services/my_service.js'); // Assuming this module is in the /app directory.
SomeController = {
'someAction': function(req, res) {
if (!req.session.hasOwnProperty('flash')) {
req.session.flash = [];
}
my_service.some_method(req);
}
}
/app/services/my_service.js:
module.exports = {
'some_method': function (req) {
// use req.session
}
};
如果这不是您正在寻找的内容,请详细解释my_service.js的用法。