新手请教一个koa2使用ejs的问题。
发布于 1 年前 作者 mofanjun 1179 次浏览 来自 问答

我使用了koa-views中间件,在ejs文件中有如下代码 <% if (user) { %> <h2><%= user.name %></h2> <% } %> 若在js文件中加入如下代码则编译通过: ctx.state.user = {} 如果不使用该语句,则会爆出user未定义的错误(user is not defined)。 请问如何解决在不给ctx.state赋值的情况下,能编译通过。

4 回复

你这个判断的语句就不行

typeof(user) !== 'undefined'

注意嵌套的变量要一层一层验证,例如先验证user,然后再验证user.name

@hezhongfeng 感谢你的回答,对于未声明的变量和声明却没有赋值的变量都属于undefined类型,但是if在使用前者时仍然会报错(chrome报Uncaught ReferenceError); 谢谢。

你的判断一下吧,例如: user ? user.name : ‘unnamed’

@mofanjun 我都说了,你别用if去判断 让你用typeof,例子也给你了 这个坑我也踩过,所以才知道的比较详细

回到顶部