Не могу подключить мою базу данных MySQL в проекте Vapor

Не нужно использовать «классы классов» или «Новый» в наши дни. Используйте литералы объектов.

Прототип объекта уже является «классом». Когда вы определяете литерал объекта, он уже является экземпляром прототипа Object. Они также могут выступать в качестве прототипа другого объекта и т. Д.

const Person = {
  name: '[Person.name]',
  greeting: function() {
    console.log( `My name is ${ this.name || '[Name not assigned]' }` );
  }
};
// Person.greeting = function() {...} // or define outside the obj if you must

// Object.create version
const john = Object.create( Person );
john.name = 'John';
console.log( john.name ); // John
john.greeting(); // My name is John 
// Define new greeting method
john.greeting = function() {
    console.log( `Hi, my name is ${ this.name }` )
};
john.greeting(); // Hi, my name is John

// Object.assign version
const jane = Object.assign( Person, { name: 'Jane' } );
console.log( jane.name ); // Jane
// Original greeting
jane.greeting(); // My name is Jane 

// Original Person obj is unaffected
console.log( Person.name ); // [Person.name]
console.log( Person.greeting() ); // My name is [Person.name]

Это стоит прочитать :

Объектно-ориентированное на основе класса Языки, такие как Java и C ++, основаны на концепции двух разных сущностей: классов и экземпляров.

...

Язык, на основе прототипа, такой как JavaScript, не делайте этого различия: у него просто есть объекты. Язык, основанный на прототипе, имеет понятие прототипического объекта, объект, используемый в качестве шаблона, из которого можно получить начальные свойства для нового объекта. Любой объект может определять свои собственные свойства либо при его создании, либо во время выполнения. Кроме того, любой объект может быть связан как прототип для другого объекта, позволяя второму объекту совместно использовать свойства первого объекта

1
задан Caleb Kleveter 16 January 2019 в 15:31
поделиться

2 ответа

Чтобы решить эту проблему, вы должны избавиться от всех остатков SQLite из исходного проекта и написать свои маршруты в routes.swift

0
ответ дан Stanislav Marynych 16 January 2019 в 15:31
поделиться

Ваша проблема в том, что в исходном шаблоне проекта есть кое-что из SQLite.

Начните с удаления зависимости fluent-sqlite из файла Package.swift и цели FluentSQLite из любых зависимостей назначения. Затем запустите swift package updatevapor xcode, если вы используете Xcode) в своем терминале.

Теперь, когда вы удалили зависимость FluentSQLite из вашего проекта, вы должны быть в состоянии следовать ошибкам компилятора, чтобы исправить вашу проблему. Вот те, которые я нашел:

<час>
import FluentSQLite
import MySQL

должно быть:

import FluentMySQL
<час>
try services.register(FluentSQLiteProvider())
try services.register(MySQLProvider())

должно быть

try services.register(FluentMySQLProvider())
<час> [1119 ] Удалите это, поскольку вы используете MySQL вместо SQLite:

// Configure a SQLite database
let sqlite = try SQLiteDatabase(storage: .memory)

/// Register the configured SQLite database to the database config.
var databases = DatabasesConfig()
databases.add(database: sqlite, as: .sqlite)
services.register(databases)

migrations.add(model: Todo.self, database: .sqlite)

Должно быть

migrations.add(model: Todo.self, database: .mysql)

Я думаю, что это охватывает все. Ваш маршрут /sql должен сработать.

0
ответ дан Caleb Kleveter 16 January 2019 в 15:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: