Как получить подстроку строк, возвращаемых из цикла foreach в Node.js при подключении к MongoDB Atlas? - PullRequest
0 голосов
/ 23 сентября 2019

Проблема: .substring () не обрабатывается, когда я подключаю свой код к MongoDB Atlas.

Справочная информация: я новичок в кодировании и создаю блог, в котором мне нужно рендерить посты вМаршрут блога и динамический маршрут с использованием параметров маршрута и сообщений необходимо сохранить на сервере MongoDB Atlas.Мне нужно показать только первые 100 символов в каждом сообщении, а затем перевести пользователя на другую страницу, используя ссылку «Подробнее».Когда я использую localhost: 3000 для рендеринга данных, сообщения в блоге успешно обрезаются с использованием .substring (0, 100), но когда я подключаюсь к MongoDB Atlas, появляется сообщение об ошибке «Не удается прочитать свойство 'substring' из неопределенного».Если я удаляю .substring (), все обрабатывается должным образом, поэтому есть ли другой способ обрезать строки?

Я не могу найти много онлайн, но до сих пор я пробовал MongtDB $ substrBytes и $ substr (устарело).

<% 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>
    <% }) %>

Ожидаемые результаты: ... Подробнее Фактические результаты: Ошибка типа: ... \ blog.ejs.Невозможно прочитать свойство 'substring' из неопределенного

1 Ответ

0 голосов
/ 24 сентября 2019

Очевидно, что некоторые из ваших сообщений не имеют содержания, введите следующий безопасный код

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