Ошибка: недопустимый начальный файл: у seed.js должна быть начальная функция - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь вставить некоторые данные в базу данных.Начальный файл написан на Typescript, а затем скомпилирован в Javascript для запуска knex.Когда я пытаюсь запустить начальный файл, я получаю сообщение об ошибке, указанное в заголовке.

Error: Invalid seed file: seed.js must have a seed function

Сама ошибка говорит о том, что в коде отсутствует начальная функция, я пытался изменить сам файл JSвместо компиляции файла TS, а также пробовал многочисленные способы возврата соединения.

Это файл TS, который я написал для компиляции (seed.ts);

const {
  patientData, gpData, ailmentData, surgeryData,
} = require('../data/index.js');

const seed = (knex: any, Promise: any) => knex.migrate
  .rollback()
  .then(() => knex.migrate.latest())
  .then(() => {
    const surgeries = knex('surgeries')
    .insert(surgeryData)
    const patients = knex('patients').insert(patientData).returning('*');
    const gps = knex('gps').insert(gpData).returning('*')
    return Promise.all([surgeries,patients, gps])
  })
  .then(([patients, gps]) => {
    console.log(patients, '<-- patients')
    console.log(gps, '<-- GPs')
    // const ailments = knex('ailments').insert
    // (ailmentData).returning('*')
    return knex('surgeries', 'gps', 'patients')
      .returning('*')
  })

Этовывод компиляции (seed.js);

var _a = require('../data/index.js'), patientData = _a.patientData, gpData = _a.gpData, ailmentData = _a.ailmentData, surgeryData = _a.surgeryData;
var seed = function (knex, Promise) { return knex.migrate
    .rollback()
    .then(function () { return knex.migrate.latest(); })
    .then(function () {
    var surgeries = knex('surgeries')
        .insert(surgeryData);
    var patients = knex('patients').insert(patientData).returning('*');
    var gps = knex('gps').insert(gpData).returning('*');
    return Promise.all([surgeries, patients, gps]);
})
    .then(function (_a) {
    var patients = _a[0], gps = _a[1];
    console.log(patients, '<-- patients');
    console.log(gps, '<-- GPs');
    // const ailments = knex('ailments').insert
    // (ailmentData).returning('*')
    return knex('surgeries', 'gps', 'patients')
        .returning('*');
}); };

1 Ответ

0 голосов
/ 02 апреля 2019

Мне нужно было изменить const из моего файла TS на exports следующим образом.

const {
  patientData, gpData, ailmentData, surgeryData,
} = require('../data/index.js');

exports.seed = (knex: any, Promise: any) => knex.migrate
  .rollback()
  .then(() => knex.migrate.latest())
  .then(() => {
    const surgeries = knex('surgeries')
    .insert(surgeryData)
    const patients = knex('patients').insert(patientData).returning('*');
    const gps = knex('gps').insert(gpData).returning('*')
    return Promise.all([surgeries,patients, gps])
  })
  .then(([patients, gps]) => {
    console.log(patients, '<-- patients')
    console.log(gps, '<-- GPs')
    // const ailments = knex('ailments').insert
    // (ailmentData).returning('*')
    return knex('surgeries', 'gps', 'patients')
      .returning('*')
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...