ejs模板字符转json对象问题

发布于 2022-09-04 10:19:58 字数 2062 浏览 25 评论 0

我数据里的一个image字段的值是一串json字符串,用的mysql

[{"path":"http://zsnice.weharvest.com/msg/nices/f35cd9ca19d04b269474449b547ecfa6.jpeg"},{"path":"http://zsnice.weharvest.com/msg/nices/f35cd9ca19d04b269474449b547ecfa6.jpeg"}]

然后我我在ejs嵌套循环出来的时候报错了。

<% for(var i=0; i< nice.length; i++){ %>
                <div class="niceitem">
                    <a class="avatar"><img src="<%- nice[i].attachPath %>" onerror="javascript:this.src='/images/avatar.png';"></a>
                    <div class="cont">
                        <div class="title"><%- nice[i].title %></div>
                        <div class="weui-uploader images">
                            <div class="weui-cell__bd">
                                <div class="weui-uploader__bd">
                                    <ul class="weui-uploader__files">
                                        <% for( var o=0; o < nice[i].image.length; o++ ){ %>
                                        <li class="weui-uploader__file" src="<%- nice[i].image[o].path %>" onclick="prewivew(this)" style="background-image:url(<%- nice[i].image[o].path %>)"></li>
                                        <% } %>
                                    </ul>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
<% } %>

报了

Cannot read property 'length' of null

image.length 找不到,我就觉得是字符串没转号格式,
然后我在服务器端显吧数据转了下格式

db.nices.findAll({limit:10}).then(function (nice) {
            for (var i=0; i<nice.length;i++){
                nice[i].image=eval(nice[i].image);
            }
            res.render("nice/nice", {
                nice: nice
            });
        })

但发现还是不行,求解!
nice[i].image=JSON.parse(nice[i].image);
也试过了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凑诗 2022-09-11 10:19:58

<% nice = JSON.parse(nice)%>
如果返回的是模板字符串,就定义一个变量将模板字符串转化为对象就好了,然后遍历

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文