Express + EJS - 将参数传递给 EJS 视图

2024-06-28

我对 Node.js/Express/EJS 相当陌生。

我最近注意到,当我将参数从 Express 请求处理程序传递到 EJS 视图并省略参数名称时,它会根据变量名称创建一个名称。例如,在下面的代码中,

//server.js
var express = require('express'); 
var app = express();

app.set('view engine', 'ejs');

app.get('/', function(req, res){ 
   var products = [
        { name: 'Tennis Ball', price: 10 },
        { name: 'Basketball', price: 20 }
    ];    

    res.render('index', {products});
});

 app.listen(8080);

//index.ejs
<ul>
<% products.forEach(function(product){ %>
<%= product.name %>
<% })%>
</ul>

传递的参数将被称为“产品”,视图将能够很好地迭代它。我认为,为了更好的代码可读性,我应该放置这一行:

res.render('index', {products : products});

我想知道使用这两种技术是否可以?


两者之间的区别在于定义对象及其属性的方式。

{ products }告诉 V8 引擎分配属性products变量的值products这在范围之内。这就是所谓的对象文字属性值简写 http://ariya.ofilabs.com/2013/02/es6-and-object-literal-property-value-shorthand.html并且是ES6的一个特性。

{ products: products }是在 ES6 中创建对象的长格式方法,onlyES6 之前的任何版本中都可以使用这种方式。

只要您的 Node 版本支持简写,您就可以使用它。这完全取决于偏好和可读性,这里没有正确或错误的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Express + EJS - 将参数传递给 EJS 视图 的相关文章

随机推荐