1

我需要访问user客户端发送的变量

res.render('home.html', { user: req.user });

不使用模板引擎,如pugejs

那可能吗?

4

1 回答 1

0

HTML 不是模板语言,因此不能用于发送变量。

res.render()函数编译你的模板,在那里插入本地,并从这两件事中创建 html 输出。语法如下 -

res.render(view [, locals] [, callback])

view参数是一个字符串,它是要渲染的视图文件的文件路径。为此,您需要一个模板或视图引擎。

在 html 中,您不能动态传递/插入数据变量。这是模板引擎的主要用例。他们将运行时/动态值放入您可能正在寻找的 html 中。

简而言之,最好使用任何模板引擎,如 pug、jade、ejs 等,其中大多数与 html 具有几乎相似的语法来呈现动态 html 页面。我认为没有任何方法(至少足够简单)可以在 html 页面中将变量从服务器动态发送到客户端。在您的用例中,使用模板引擎将是最佳选择。

例如。您正在从服务器端传递用户,并且很可能希望在客户端呈现传递的变量。你可以安装一个像 ejs - 这样的视图引擎,在app.js -npm install ejs中设置你的视图引擎,然后在你想要将变量发送到客户端的 html 页面中添加这一行 -就是这样。将您的 html 文件保存在视图文件夹中,这样就可以了。app.use('view engine','ejs');<p> <%= user %> </p>

于 2020-06-24T12:32:57.343 回答