ejs не разбирает объект пользователя - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь выучить express, и я из php-фона. То, чего я пытаюсь добиться, это установить для аутентифицированного пользователя переменную res.locals, чтобы аутентифицированную пользовательскую переменную можно было легко использовать в eJS.

МОЕ приложение.js похож на

initialize passport etc
///////////////////////////////////////////
//middleware to pass authuser to req locals
app.use(function (req, res, next) {
  res.locals.authUser = req.user;
  next();
});

router.js

router.get('/',function(req,res){
    console.log(res.locals.authUser);
    res.render('index');
});

index.ejs view <%= authUser.first_name %>

В ejs first_name не анализируется, но еслия помещаю это <%= authUser %>, оно отображает

{ 
  is_admin: true,
  _id: 5d8cb3702e35aa2f5cbaabf8,
  first_name: 'ruban',
  last_name: 'shah',
  username: 'admin',
  email: 'admin@example.com',
  password: 'xxxxxx' 
}

, что означает, что authUser - это объект, но он не печатает authUser.first_name - это ejs

, но странно то, что он отображает authUser.username

1 Ответ

0 голосов
/ 28 сентября 2019

Мое лучшее предположение - когда вы добавляете пользователя в sesison после входа в систему, вы не добавляете объект пользователя, а добавляете строку JSON.

...