Warm tip: This article is reproduced from stackoverflow.com, please click
javascript node.js admin loopbackjs roles

How to create a Role in Loopback/Node.Js

发布于 2020-03-27 10:27:02

I created this method to create an Admin Role. I have to check in user table if the admin field is set to 0 or 1 of the current user to detect if it's a normal user or an admin. Problem is when I console.log('obj',objUser) I get this :

obj Promise {
  _bitField: 0,
  _fulfillmentHandler0: undefined,
  _rejectionHandler0: undefined,
  _promise0: undefined,
  _receiver0: undefined }

This is what I've built so far :

Role.registerResolver('Admin', function(role, context, cb) {

            //Q: Is the user logged in? (there will be an accessToken with an ID if so)
            var userId = context.accessToken.userId;

            if (!userId) {
              //A: No, user is NOT logged in: callback with FALSE
              return process.nextTick(() => cb(null, false));
            }

            var user = app.models.user;

            var objUser = user.findById(userId);
            console.log('obj',objUser)
            if(objUser.admin==1){
              return cb(null, true);
            }
            else{
              return cb(null, false);
            }

            });

Do you have any idea what's wrong am I doing. Any help would be appreciated. Thank you.

Questioner
Ahmed
Viewed
62
akkonrad 2019-07-04 15:50

you should read about javascript Promises, it's crucial to understand javascript in general and async programming. Also, check the async/await