我在我的fluxfluxible js项目中使用了带有装饰器stage:0支持的babel,我想为我的服务api模块使用经过身份验证的装饰器来检查有效的用户会话。
谷歌搜索,似乎有几篇文章解释了不同的变化,但找不到一个权威的文档或说明。
到目前为止,这是我尝试过的,我知道我的身份验证函数的参数不正确,并且不确定我是否需要为我的模块实现一个类,而不仅仅是使用导出对象。
我找不到文档的部分是如何实现装饰器本身 - 在这种情况下,装饰函数将接收并检查它的 req 参数。
// how do I change this method so that it can be implemented as a decorator
function checkAuthenticated(req) {
if (!req.session || !req.session.username)
{
throw new Error('unauthenticated');
}
}
module.exports = {
@checkAuthenticated
read: function(req, resource, params, serviceConfig, callback) {
//@authenticated decorator should allow me to move this out of this here
//checkAuthenticated(req);
if (resource === 'product.search') {
var keyword = params.text;
if (!keyword || keyword.length === 0) {
return callback('empty param', null);
} else {
searchProducts(keyword, callback);
}
}
}
};