Почему этот скрипт узла вызывает ошибку TypeError? - PullRequest
0 голосов
/ 24 июня 2019

Я написал скрипт узла, который удаляет старые почтовые приглашения из базы данных. В конце концов, этот скрипт будет запускаться ежедневно как задание cron. Все вызовы базы данных работают нормально, база данных настроена правильно и работает, но когда я пытаюсь вручную протестировать этот скрипт из командной строки, я получаю ошибку TypeError. В настоящее время я не волнуюсь, если скрипт является оптимальным или неправильно настроена функция, я просто пытаюсь запустить его из cmd без ошибок.

Вот скрипт, который я запускаю:

const inviteRepo = require('../app/repos/invite')

exports.start = function (cb) {
  console.log('beginning function')
  inviteRepo.all((err, myInvites) => {
    if (err) {
      console.log(err)
      return cb(err)
    }
    if (myInvites) {
      let invite
      let n = Date.now()
      let cutoff = 7  // number of days after which invites get deleted
      n += Number(n) - cutoff
      for (invite in myInvites) {
        if (Number(invite.sentAt) < n) {
          inviteRepo.delete(invite._id, (err, results) => {
            if (err) {
              console.log(err)
              return cb(err)
            }
          })
        }
      }
    }
  })
}

this.start()  // for testing purposes

Вот функция, вызываемая с помощью inviteRepo.all:

exports.all = (cb) => {
  db.invites.find().toArray((err, myInvites) => {
    if (err) return cb(err)
    if (myInvites.length === 0) {
      return cb(null, [])
    } else if (myInvites.length > 0) {
      return cb(null, myInvites)
    }
  })
}

И это сообщение об ошибке, которое я получаю:

db.invites.find().toArray((err, myInvites) => {
             ^

TypeError: Cannot read property 'find' of undefined

Сценарий, очевидно, обращается к файлу InviteRepo очень хорошо, и, поскольку база данных требуется в файле InviteRepo (const db = require('../../mongodb')), я не понимаю, почему db.invites не определен. Нужно ли вручную импортировать или требовать что-то еще в исходном скрипте?

Спасибо заранее; Я все еще знакомлюсь с node.js и запускаю сценарии вне нормального функционирования программы.

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