我是javascript的新手,它必须非常基础:
if (controllerName === ('about' || 'contact' || 'lessons')) {
res.render(controllerName + '.ejs', locals);
}
Run Code Online (Sandbox Code Playgroud)
只有当controllerName=='about'我进去时,其余的情况我都没有.
在这种情况下如何操作or和===操作?
你的结构不正确.修复就是
if (controllerName == 'about' || controllerName == 'contact' || controllerName == 'lessons') {
res.render(controllerName + '.ejs', locals);
}
Run Code Online (Sandbox Code Playgroud)
问题是('about' || 'contact' || 'lessons')评估为,about因为它是集合中的第一个非(null/undefined)值.您似乎想要与controllerName所有三个值进行比较,因此请注意我的代码版本如何controllerName与所有三个值分别进行比较.
更简洁的修复可以使用正则表达式:
if (/^(about|contact|lessons)$/.test(controllerName)) { ... }
Run Code Online (Sandbox Code Playgroud)