连接到 MongoDB Atlas 时,如何获取从 Node.js 中的 foreach 循环返回的字符串的子字符串

How can I get a substring of the strings returned from a foreach loop in Node.js when connected to MongoDB Atlas

问题:当我将我的代码连接到 MongoDB Atlas 时,.substring() 没有处理。

背景: 我是编码新手,我正在创建一个博客,我需要在其中将 posts 渲染到博客路由和使用路由参数的动态路由,并且 posts 需要保存到MongoDB 阿特拉斯服务器。 我只需要在每个 post 中显示前 100 个字符,然后使用 "Read More" link 将用户引导到另一个页面。 当我使用 localhost:3000 呈现数据时,博客 post 被成功使用 .substring(0, 100) 截断,但是当我连接到 MongoDB Atlas 时,错误消息 "Cannot read property 'substring' of undefined." 如果我删除 .substring() 一切正常,那么还有另一种截断字符串的方法吗?

我在网上找不到太多,但到目前为止我已经尝试了 MongoDB 的 $substrBytes 和 $substr(deprecated)。

<% posts.forEach(function(post) { %>
    <!-- Render the postTitle value as the title of the journal entry -->
    <h2><%= post.title %> </h2>
    <p>
    <!-- Render the postBody value and truncate the blog post to 100 
    characters -->
    <%= post.content.substring(0, 100) + '...'%>
    <!-- Add a link to see the full blog post on a separate page -->
    <a href="/posts/<%= post._id %>">Read More</a>
    </p>
    <% }) %>

预期结果: ...阅读更多 实际结果:TypeError:...\blog.ejs。无法读取未定义

的 属性 'substring'

很明显你的一些帖子没有内容,写下安全代码

<%= (post.content)? post.content.substring(0, 100) + '...' : 'No content available' %>