首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Express + EJS -将参数传递给EJS视图

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

Stack Overflow用户
提问于 2016-06-06 19:55:51
回答 2查看 2.7K关注 0票数 3

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

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

代码语言:javascript
复制
//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>

传递的参数将被称为"products“,视图将能够很好地迭代它。我想,为了获得更好的代码可读性,我应该将这一行放在下面:

代码语言:javascript
复制
res.render('index', {products : products});

我想知道这两种技术都可以吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-06 20:04:36

两者的区别在于如何定义对象及其属性。

{ products }告诉V8引擎为属性products分配范围内的变量products的值。这被称为对象文字属性值速记,是ES6的一个特性。

{ products: products }是在ES6中创建对象的长格式方法,在ES6之前的任何版本中都是唯一的方式。

只要Node版本支持速记,就可以使用它。这一切都是关于偏好和可读性,这里没有正确或错误的方式。

票数 2
EN

Stack Overflow用户

发布于 2016-06-07 02:18:53

这两种代码的结果是相同的。第一个版本是由linter建议的,因为它更短、更易读。

请学习JavaScript风格的指南,有很多指南,如airbnb,谷歌等。

我推荐airbnb来这里。https://github.com/airbnb/javascript

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37665825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档