wolf47
@wolf47
Айтишник, немного програмирую на JS

Почему req.acl иногда не доступен?

Для проекта использую mean.io, при установке система работает стабильно, но acl в моем модуле иногда бывает не доступным. А вот эталонный модуль articles, всегда доступен.

Вот мой где это случается:
var hasPermissions = function(req, res, next) {

  req.body.permissions = req.body.permissions || ['authenticated'];

  for (var i = 0; i < req.body.permissions.length; i++) {
    var permission = req.body.permissions[i];
    if(typeof(req.acl) === 'undefined'){
      console.log('req.acl: ', req.acl);
    }
    
    if (req.acl.user.allowed.indexOf(permission) === -1) {
      return res.status(401).send('User not allowed to assign ' + permission + ' permission.');
    }
  }

  next();
};


Вызов функции происходит здесь:

...
app.route('/api/' + name + e + 's')
      .get(controller.all)
      .post(auth.requiresLogin, hasPermissions, controller.create);
...


Ошибка в консоле:

req.acl:  undefined
TypeError: Cannot read property 'user' of undefined
    at hasPermissions (/home/ubuntu/workspace/mean/packages/custom/bars/server/routes/bars.js:23:16)
    at Layer.handle [as handle_request] (/home/ubuntu/workspace/mean/node_modules/meanio/lib/core_modules/server/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/ubuntu/workspace/mean/node_modules/meanio/lib/core_modules/server/node_modules/express/lib/router/route.js:131:13)
    at /home/ubuntu/workspace/mean/packages/core/users/authorization.js:27:7
    at Query.<anonymous> (/home/ubuntu/workspace/mean/packages/core/users/authorization.js:12:9)
    at /home/ubuntu/workspace/mean/node_modules/kareem/index.js:177:19
    at /home/ubuntu/workspace/mean/node_modules/kareem/index.js:109:16
    at doNTCallback0 (node.js:407:9)
    at process._tickCallback (node.js:336:13)
POST /api/orders 500 - - 10.378 ms


Друзья, подскажите, в чем может быть проблема?
Почему иногда пользователь в rec.acl доступен, а иногда не доступен?

Такая проблема случается при записи данных в базу. Например при созданий нового документа...
Чтобы восстановиться помогает перезапуск сервера, иногда хватает просто рестарт, а иногда полноценный сбор с помощью команды gulp.
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы