Sélectionner une page


version npm
téléchargements npm

État de la couverture
Statut de dépendance
Chat en grille
Niveau de langue: JavaScript

Un générateur de requêtes SQL souple, portable, et amusement utiliser!

Un générateur de requêtes multi-dialectes alimenté par batterie (MSSQL, MySQL, PostgreSQL, SQLite3, Oracle (y compris Oracle Wallet Authentication)) pour Node.js avec les fonctionnalités suivantes:

Les versions 10+ de Node.js sont prises en charge.

Vous pouvez signaler des bogues et discuter des fonctionnalités sur le site Web Page des problèmes GitHub ou envoyer des tweets à @kibertoad.

Pour toute assistance et questions, rejoignez-nous Canal de grille.

Vous trouverez des informations sur le mappeur relationnel objet basé sur le genou à l’adresse suivante:

Vous pouvez utiliser le SQL généré par Knex pour une requête spécifique Laboratoire de requêtes Knex

Exemples

Nous avons plusieurs exemples sur le site Internet. Voici le premier pour vous aider à démarrer:

const knex = require('knex')({
  client: 'sqlite3',
  connection: {
    filename: './data.db',
  },
});

try {

  // Create a table
  await knex.schema
    .createTable('users', table => {
      table.increments('id');
      table.string('user_name');
    })
    // ...and another
    .createTable('accounts', table => {
      table.increments('id');
      table.string('account_name');
      table
        .integer('user_id')
        .unsigned()
        .references('users.id');
    })

  // Then query the table...
  const insertedRows = await knex('users').insert({ user_name: 'Tim' })

  // ...and using the insert id, insert into the other table.
  await knex('accounts').insert({ account_name: 'knex', user_id: insertedRows[0] })

  // Query both of the rows.
  const selectedRows = await knex('users')
    .join('accounts', 'users.id', 'accounts.user_id')
    .select('users.user_name as user', 'accounts.account_name as account')

  // map over the results
  const enrichedRows = selectedRows.map(row => ({ ...row, active: true }))

  // Finally, add a catch statement
} catch(e) {
  console.error(e);
};

Exemple de TypeScript

import { Knex, knex } from 'knex'

interface User {
  id: number;
  age: number;
  name: string;
  active: boolean;
  departmentId: number;
}

const config: Knex.Config = {
  client: 'sqlite3',
  connection: {
    filename: './data.db',
  },
});

const knexInstance = knex(config);

try {
  const users = await knex<User>('users').select('id', 'age');
} catch (err) {
  // error handling
}

Utiliser comme module ESM

Lorsque vous démarrez votre application de nœud avec --experimental-modules, knex.mjs doit être sélectionné automatiquement et l’importation ESM nommée doit fonctionner immédiatement. Sinon, si vous souhaitez utiliser des importations nommées, vous devrez importer knex comme suit:

import { knex } from 'knex/knex.mjs'

Vous pouvez également effectuer simplement l’importation standard:

Si vous n’utilisez pas TypeScript et que vous souhaitez qu’IntelliSense fonctionne correctement pour votre IDE, il est recommandé de définir le type explicitement:

/**
 * @type {Knex}
 */
const database = knex({
    client: 'mysql',
    connection: {
      host : '127.0.0.1',
      user : 'your_database_user',
      password : 'your_database_password',
      database : 'myapp_test'
    }
  });
database.migrate.latest();





Source link

Recent Posts