我在8000端口上使用高速公路作为服务器。我希望将一个字符串值从高速公路文件发送到html脚本标记,并在脚本标记中使用这个字符串值。name变量现在以空字符串的形式出现。我如何console.log名称变量的值?
静态页面-server.js:
app.get('/index', function(req, res) {
var name = "hello";
res.render(__dirname + "/static-pages/journey-analize-report/index.html", {name:name});
});index.html:
<script type="text/javascript">
console.log(name);
</script>编辑:我使用了ejs,现在的问题是如何在脚本标记中描述name属性?下面的代码给出了语法错误。
<script type="text/javascript">
console.log(<%=name%>);
</script>发布于 2022-02-07 10:28:43
Express.js本身就是后端服务器。如果您想拥有动态HTML文件,您需要使用模板引擎。
请遵循本文件-> https://expressjs.com/en/guide/using-template-engines.html
最终,您将意识到您将需要一个前端框架来以良好的质量更快地编写您的代码。因此,还建议您查看一些框架,如React,Vue.js。如果需要单个页面应用程序,则只使用express.js提供数据,而不是呈现HTML。如果您需要服务器端呈现,那么最好研究一下Next.js,Nuxt.js。
发布于 2022-02-07 10:33:35
不能直接将变量注入nodejs中的html文件。这就是为什么你有特快的模板引擎。看看ejs。
它将允许您将数据直接从您的路由传递到您正在呈现的页面。
发布于 2022-02-07 10:36:45
使用locals方法通过res.render()参数发送到视图的局部变量不能直接访问。相反,您需要引用那些使用它的变量名包装在双花括号中的人。因此,如果要在JavaScript函数中使用它,则需要声明一个局部变量,并将name本地的内容提供给它。
只需像这样修改您的index.html:
<script type="text/javascript">
let name = "{{name}}";
console.log(name);
</script>https://stackoverflow.com/questions/71016921
复制相似问题