Javascript 使用ejs,如何在执行正确的“联接”时保持正确的缩进?
我试图得到这个结果(有两个因素很重要:精确的缩进,因为它输出YAML,并且在最后一个IP之后没有逗号): 使用以下ejs代码:Javascript 使用ejs,如何在执行正确的“联接”时保持正确的缩进?,javascript,ejs,Javascript,Ejs,我试图得到这个结果(有两个因素很重要:精确的缩进,因为它输出YAML,并且在最后一个IP之后没有逗号): 使用以下ejs代码: NotIpAddress: "aws:SourceIp": [ "<%- permittedIPAddresses.join('",\n"') %>" ] 所以我试了一下
NotIpAddress:
"aws:SourceIp": [
"<%- permittedIPAddresses.join('",\n"') %>"
]
所以我试了一下:
NotIpAddress:
"aws:SourceIp": [
<%_ for(const i in permittedIPAddresses){ _%>
"<%= permittedIPAddresses[i].trim() %>",
<%_ } _%>
]
所以我要么放弃正确的缩进,要么放弃正确的连接
在进行适当连接的同时,没有办法保持缩进?以下是如何实现第二个解决方案,但省略最后一行的逗号:
NotIpAddress:
“aws:SourceIp”:[
{ _%>
]
这以提供索引位置的方式进行迭代,并在索引(i)不是最后一项的索引时添加逗号
作为替代方案,您可以利用另一个选项在YAML中格式化列表。它每行都是统一的,所以逗号问题就消失了,结果更干净了
NotIpAddress:
“aws:SourceIp”:
{ _%>
使用替代列表格式的结果如下所示:
NotIpAddress:
“aws:SourceIp”:
- "100.200.300.400"
- "110.200.300.400"
- "120.200.300.400"
对于其他替代方案,如果缩进级别在每种情况下都是固定的(即不依赖于上下文),则也可以使用.map
:
NotIpAddress:
“aws:SourceIp”:[
`“${ip}`).加入(“,\n”)%>
]
NotIpAddress:
“aws:SourceIp”:
`-“${ip}`).加入(“\n”)%>
以下是如何实现第二个解决方案,但省略最后一行的逗号:
NotIpAddress:
“aws:SourceIp”:[
{ _%>
]
这以提供索引位置的方式进行迭代,并在索引(i)不是最后一项的索引时添加逗号
作为替代方案,您可以利用另一个选项在YAML中格式化列表。它每行都是统一的,所以逗号问题就消失了,结果更干净了
NotIpAddress:
“aws:SourceIp”:
{ _%>
使用替代列表格式的结果如下所示:
NotIpAddress:
“aws:SourceIp”:
- "100.200.300.400"
- "110.200.300.400"
- "120.200.300.400"
对于其他替代方案,如果缩进级别在每种情况下都是固定的(即不依赖于上下文),则也可以使用.map
:
NotIpAddress:
“aws:SourceIp”:[
`“${ip}`).加入(“,\n”)%>
]
NotIpAddress:
“aws:SourceIp”:
`-“${ip}`).加入(“\n”)%>
为什么首先要使用EJS生成YML?!改用YML序列化程序。@Quentin我不知道你的意思。.用js代码表示数据并将其序列化?基本上我有一些YAML文件,我想通过代码向其中注入参数,我希望这些YAML文件以YAML的形式显示,但只需改变特定的parts并将多个YAML连接到一个YAML。为什么您首先要使用EJS生成YML?!请使用YML序列化程序。@Quentin我不确定您的意思。.要在js代码中表示数据并将其序列化?基本上我有一些YAML文件,我想通过代码将参数注入其中,我希望这些YAML文件作为ey与YAML相同,但只需更改特定部分,并将多个YAML连接到一个YAML即可。
NotIpAddress:
"aws:SourceIp": [
"100.200.300.400",
"110.200.300.400",
"120.200.300.400"
]
NotIpAddress:
"aws:SourceIp": [
<%_ for(const i in permittedIPAddresses){ _%>
"<%= permittedIPAddresses[i].trim() %>",
<%_ } _%>
]
NotIpAddress:
"aws:SourceIp": [
"100.200.300.400",
"110.200.300.400",
"120.200.300.400",
]