我是整个 nodejs 生态系统的新手,所以请慢慢说,用小词。
过去,在使用 PHP 开发网站时,我通常会包含 header.php 和 footer.php。标头包含通常包含 HTML 头元素,因此要在 header.php 中定义标题和元标记的默认值,我通常实现如下逻辑:
if (title is not defined) {
use some default title;
}
这让我能够捕捉到我没有为某些单独的页面设置标题或元描述标签的情况,并使用一些默认的全局值。
我现在正在尝试在sails.js 中做同样的事情,但我得到了一些奇怪的结果。在某些观点(例如“test.ejs”)中,我有:
<%
var pg_title = 'test';
%>
<%- include header.ejs %>
然后在标题中我有:
<%
console.log(pg_title);
%>
这行得通。(即它呼应“测试”)
但是,如果 header.ejs 包含任何类型的关于是否已定义 pg_title 的测试,则在 test.ejs 中设置的 pg_title 的值总是被忽略(它回显“未定义”)。
目前,header.ejs 包含以下代码,但我尝试了几种不同的方法。
if (typeof pg_title == 'undefined') {
var pg_title = __('pg_title_default');
}
上述条件将始终评估为真。如果我按照 Ravi 的建议在 header.ejs 中删除“var”,我会收到“pg_title is not defined”错误。
我究竟做错了什么?