Node.js 如何将数据从express后端发送到ejs前端?

Node.js 如何将数据从express后端发送到ejs前端?,node.js,express,ejs,Node.js,Express,Ejs,我正在尝试一个教程网站,因为我的一些页面需要发送教程对象、视频对象、用户对象,具体取决于它们到达的路线。所以,即使前端不需要空对象,也有必要发送空对象吗?我在脚本标记中提取这些后端对象,并将其分配给窗口对象,以便在angular client中使用 下面是一些示例代码 // layout.ejs common to all front end views <script> window.user = <%- typeof user !== 'undefined'? JSON

我正在尝试一个教程网站,因为我的一些页面需要发送教程对象、视频对象、用户对象,具体取决于它们到达的路线。所以,即使前端不需要空对象,也有必要发送空对象吗?我在脚本标记中提取这些后端对象,并将其分配给窗口对象,以便在angular client中使用

下面是一些示例代码

// layout.ejs   common to all front end views
<script>
window.user = <%- typeof user !== 'undefined'? JSON.stringify(user) : null %>
</script>
但当我不将user作为null发送时,它抛出ReferenceError:user not defined。为什么会这样?我正在检查脚本标记,如果它未定义,我将使用null。错了吗


如果我们需要从后端显式发送null,那么每次发送null似乎很尴尬,即使我不需要它。什么是正确的方法?

这是因为三元运算符检查两个部分(包括带有
用户的部分),即使由于条件为false而未对其进行计算

您必须包括以下内容:

let user = user || null;

或者在渲染中发送显式null

对不起,我找到了答案。我们可以用这个来设置它。是的,它使用null作为字符串。这似乎不同

window.user = <%- typeof user === 'undefined' ? 'null': JSON.stringify(user) %>
window.user=

我希望它可以帮助其他人。

不,EJS还有另一种选择。可以将null作为字符串发送。这对我的案子有效。
window.user = <%- typeof user === 'undefined' ? 'null': JSON.stringify(user) %>