如何在Vue模板中显示res.locals变量?

时间:2018-06-12 21:33:20

标签: node.js vue.js

在NodeJS Express应用程序中,我根据Express文档https://expressjs.com/en/api.html#res.locals

将res.locals.isAuthenticated设置为一个值
function isAuthenticated(req, res, next) {

    if (validationId(req.user.id)){
        res.locals.isAuthenticated=true;
        return next();
    } else{
        res.locals.isAuthenticated=false;
        res.redirect('/');
    }
}

工作正常,我可以在调试器的req对象中看到locals.isAuthenticated值。我无法弄清楚如何在Vue模板中访问isAuthenticated。

Vue模板在main.js文件资源组件中引用,该组件与路由关联。

var resources = {
  template: '#resources',
  data() {
    return {
      path: [],
      files: [],
      isLoading: false,
      folderId: -1
    }
  },
  created() {
    document.title = 'Resources';
  }
}

通常,您将任何数据值放在{{data value}}中,例如,在Vue模板中使用它,如下所示:

  <script type="text/x-template" id="resources">
    <div>
      <div class="row">
        <div class="col s12">
          TEST--{{isAuthenticated}}--
        </div>
      </div>
      </div>
    </div>
  </script>

但是在页面渲染过程中会导致错误

vue.min.js:6 ReferenceError:未定义isAuthenticated     at o.eval(eval at xa(vue.min.js:6),:3:120)     在o.fn._render(vue.min.js:6)     在o。 (vue.min.js:6)

我想要实现的是在服务器上设置isAuthenticated,然后使用Vue“v-if”在客户端视图中进行条件渲染。

0 个答案:

没有答案