Неожиданная ошибка конца ввода при попытке сохранить сообщения в MongoDB - PullRequest
1 голос
/ 09 января 2020

Ниже приведен мой код в postController.js, с помощью которого я пытаюсь сохранить созданные пользователем сообщения в MongoDB:

const postsCollection = require('../db').db().collection("posts")

let Post = function(data) {
  this.data = data
  this.errors = []
}

Post.prototype.cleanUp = function() {
    if (typeof(this.data.title) != "string") {
      this.data.title = ""
    } {
      if (typeof(this.data.body) != "string") {
        this.data.body = ""
      } {


        // get rid of silly properties
        this.data = {
          data: this.data.title.trim(),
          body: this.body.title.trim(),
          createdDate: new Date()
        }
      }

      Post.prototype.validate = function() {
        if (this.data.title == "") {
          this.errors.push("Please provide a title.")
        }
        if (this.data.body == "") {
          this.errors.push("Please provide post input.")
        }
      }

      Post.prototype.create = function() {
        return new Promise((resolve, reject) => {
          this.cleanUp()
          this.validate()
          if (!this.errors.length) {
            // save post in the database
            postsCollection.insertOne(this.data).then(() => {
              resolve()
            }).catch(() => {
              this.errors.push("Please try again later.")
              reject(this.errors)
            })
          } else {
            reject(this.errors)
          }
        })
      }

      module.exports = Post

Однако я не могу увидеть или найти ошибку, так как она показывает следующую ошибку в терминале, который является первой строкой в ​​коде выше:

SyntaxError: Неожиданный конец ввода
в объекте. (C: ####### ******* \ controllers \ postController. js: 1: 14)

Ответы [ 3 ]

1 голос
/ 09 января 2020

Я думаю, что ошибка на Post.prototype.cleanUp функции. У вас есть 2 открывающие клавиши { в конце каждой if внутри этой функции.

0 голосов
/ 09 января 2020

@ simpleDmitry: извините, я пытался сделать это жирным шрифтом; заметили после того, как сообщение пропало.

@ SherylHohman: Спасибо за форматирование отступа для лучшей разборчивости и поиска дефектных скобок.

@ воскресенье и Али Рехман: Спасибо, что указали слишком много фигурные скобки в функции Post.prototype.cleanUp, которые я исправил и теперь читается как:

Post.prototype.cleanUp = function() {
 if (typeof(this.data.title) != "string") {this.data.title = ""}
 if (typeof(this.data.body) != "string") {this.data.body = ""}

  // get rid of silly properties
  this.data = {
  title: this.data.title.trim(),
  body: this.body.title.trim(),
  createdDate: new Date()
 }
}

Страница теперь указывает на пустую страницу, отображающую только {}. Я должен в дальнейшем разобраться, почему .. Приятного время всем.

0 голосов
/ 09 января 2020

Вам не хватает одного } до module.exports = Post

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...