использование knex с модулями es6 - PullRequest
0 голосов
/ 23 марта 2020

Я делаю проект, полностью основанный на модулях ES6, и у меня есть некоторые трудности при интеграции knex и особенно knex CLI

Я смог использовать knex (без CLI) с этим:


 const config = {
  client: 'mysql2',

  connection: { 
    host : "localhost", 
    user : "tata",  
    password : "tata",  
    database : "tata",

  },
}

const myknex = knex(config )

export default myknex

Но это не позволяет использовать knex CLI ...

Поэтому я создал модуль knexfile с файлом .knex / knexfile. js и пакетом .knex / package. json file:

//knexfile.js
module.exports =  {

  development: {
    client: 'sqlite3',
    connection: {
      filename: './dev.sqlite3'
    },
    useNullAsDefault : true
  },

  production: {
    client: 'mysql2',  
    connection: { 
      host : "localhost", 
      user : "tata",  
      password : "tata",  
      database : "tata",

    },  
    migrations: {
      tableName: 'knex_migrations'
    }
  }

};
//package.json
{
  "name": "knexfile",
  "version": "1.0.0",
  "description": "",
  "main": "knexfile.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

там я могу добавить модуль knexfile в свой проект

"dependencies": {
    "knexfile": "file:./knex",
    ...

, и я могу импортировать конфигурацию без забот

import knex from 'knex'
import knexfile from 'knexfile'

const myknex = knex(knexfile.developpement)
//const myknex = knex(knexfile.production)

export default myknex

, но Я должен указать разработку или производство, ENV не управляется, так как knex CLI управляет им

Как можно более просто и эффективно использовать knex и knex CLI в проекте ES6?

Заранее спасибо

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете определить переменную среды NODE_PROFILE=production, чтобы CLI автоматически выбирал производственную конфигурацию. Если вам нравится, вы можете использовать ту же переменную env в своем коде приложения, как это:

import knex from 'knex'
import knexfile from 'knexfile'

const myknex = knex(knexfile[process.env.NODE_PROFILE])

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