<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Knex.js 教程 > 原文: [http://zetcode.com/javascript/knex/](http://zetcode.com/javascript/knex/) Knex.js 教程展示了如何使用 Knex.js 在 JavaScript 中對數據庫進行編程。 ## Knex.js Knex.js 是用于關系數據庫(包括 PostgreSQL,MySQL,SQLite3 和 Oracle)的 JavaScript 查詢生成器。 它可以與回調和`Promise`一起使用。 它支持事務和連接池。 在本教程中,我們使用 MySQL。 ## 安裝 Knex.js 首先,我們需要安裝 Knex.js。 ```js $ nodejs -v v9.11.2 ``` 我們使用 Node 版本 9.11.2。 ```js $ npm init ``` 我們啟動一個新的 Node 應用。 ```js $ npm i knex mysql2 ``` 我們安裝 Knex.js 和 MySQL 驅動程序。 有兩個驅動程序可用:`mysql`和`mysql2`; 我們選擇了后者。 ## Knex.js 的數據庫版本 在第一個示例中,我們找出 MySQL 的版本。 `version.js` ```js const options = { client: 'mysql2', connection: { host: '127.0.0.1', user: 'user12', password: 's$cret', database: 'mydb' } } const knex = require('knex')(options); knex.raw("SELECT VERSION()").then( (version) => console.log((version[0][0])) ).catch((err) => { console.log( err); throw err }) .finally(() => { knex.destroy(); }); ``` 該示例返回 MySQL 的版本。 ```js const options = { client: 'mysql2', connection: { host: '127.0.0.1', user: 'user12', password: 's$cret', database: 'mydb' } } ``` 這些是 MySQL 的連接選項。 ```js const knex = require('knex')(options); ``` 我們加載 Knex.js 并提供連接選項。 ```js knex.raw("SELECT VERSION()").then( (version) => console.log((version[0][0])) ).catch((err) => { console.log( err); throw err }) .finally(() => { knex.destroy(); }); ``` 使用`raw()`函數,我們執行 SQL 語句。 如果語句運行正常,我們將輸出輸出。 否則,我們記錄錯誤。 最后,我們使用`destroy()`關閉數據庫連接。 ```js $ node version.js TextRow { 'VERSION()': '5.7.22-0ubuntu0.16.04.1' } ``` 這是輸出。 ## Knex.js 創建表 在第二個示例中,我們創建一個新的數據庫表。 `create_table.js` ```js const options = { client: 'mysql2', connection: { host: '127.0.0.1', user: 'user12', password: 's$cret', database: 'mydb' } } const knex = require('knex')(options); knex.schema.createTable('cars', (table) => { table.increments('id') table.string('name') table.integer('price') }).then(() => console.log("table created")) .catch((err) => { console.log(err); throw err }) .finally(() => { knex.destroy(); }); ``` 使用 Knex.js 模式`createTable()`函數創建一個新表。 我們定義模式以包含三列:id,名稱和價格。 ## Knex.js 插入數據 接下來,我們將向創建的表中插入一些數據。 `insert_cars.js` ```js const options = { client: 'mysql2', connection: { host: '127.0.0.1', user: 'user12', password: 's$cret', database: 'mydb' } } const knex = require('knex')(options); const cars = [ { name: 'Audi', price: 52642 }, { name: 'Mercedes', price: 57127 }, { name: 'Skoda', price: 9000 }, { name: 'Volvo', price: 29000 }, { name: 'Bentley', price: 350000 }, { name: 'Citroen', price: 21000 }, { name: 'Hummer', price: 41400 }, { name: 'Volkswagen', price: 21600 }, ] knex('cars').insert(cars).then(() => console.log("data inserted")) .catch((err) => { console.log(err); throw err }) .finally(() => { knex.destroy(); }); ``` 我們用`knex('cars)`選擇`cars`表,并用`insert()`方法插入八行。 ## Knex.js 選擇所有行 在下面的示例中,我們從`cars`表中選擇所有行。 `select_cars.js` ```js const options = { client: 'mysql2', connection: { host: '127.0.0.1', user: 'user12', password: 's$cret', database: 'mydb' } } const knex = require('knex')(options); knex.from('cars').select("*") .then((rows) => { for (row of rows) { console.log(`${row['id']} ${row['name']} ${row['price']}`); } }).catch((err) => { console.log( err); throw err }) .finally(() => { knex.destroy(); }); ``` 我們使用`select()`函數選擇所有行。 這次我們選擇了具有`from()`函數的表格。 然后,我們遍歷返回的行數組并打印三個字段。 ```js $ node select_cars.js 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 6 Citroen 21000 7 Hummer 41400 8 Volkswagen 21600 ``` 這是輸出。 ## Knex.js 使用`WHERE`限制輸出 SQL `WHERE`子句用于定義要返回的行要滿足的條件。 `select_where.js` ```js const options = { client: 'mysql2', connection: "mysql://root:andrea@localhost:3306/mydb" } const knex = require('knex')(options); knex.from('cars').select("name", "price").where('price', '>', '50000') .then((rows) => { for (row of rows) { console.log(`${row['name']} ${row['price']}`); } }) .catch((err) => { console.log( err); throw err }) .finally(() => { knex.destroy(); }); ``` 該示例返回價格高于 50000 的汽車。 ```js const options = { client: 'mysql2', connection: "mysql://user12:s$cret@localhost:3306/mydb" } ``` 這次,我們提供了一個連接 URL。 ```js knex.from('cars').select("name", "price").where('price', '>', '50000') ``` 我們用`select()`選擇了兩列,并在`where()`函數中添加了`WHERE`子句。 ```js $ node select_where.js Audi 52642 Mercedes 57127 Bentley 350000 ``` 三輛汽車比 5 萬輛貴。 ## Knex.js 排序行 我們可以使用`orderBy()`函數訂購數據。 `order_cars.js` ```js const options = { client: 'mysql2', connection: { host: '127.0.0.1', user: 'user12', password: 's$cret', database: 'mydb' } } const knex = require('knex')(options); knex.from('cars').select('name', 'price').orderBy('price', 'desc') .then((rows) => { for (row of rows) { console.log(`${row['name']} ${row['price']}`); } }).catch((err) => { console.log( err); throw err }) .finally(() => { knex.destroy(); }); ``` 該示例選擇所有汽車,然后按價格降序對其進行排序。 ```js $ node order_cars.js Bentley 350000 Mercedes 57127 Audi 52642 Hummer 41400 Volvo 29000 Volkswagen 21600 Citroen 21000 Skoda 9000 ``` 這是輸出。 在本教程中,我們使用了`Knex.js`庫。 我們創建了一些與 MySQL 交互的命令行程序。 您可能也對以下相關教程感興趣: [Sequelize 教程](/javascript/sequelize/), [Node Postgres 教程](/javascript/nodepostgres/), [Moment.js 教程](/javascript/momentjs/), [JSON 服務器教程](/javascript/jsonserver/) ,[從 URL 中讀取 JavaScript 中的 JSON](/articles/javascriptjsonurl/) , [JavaScript 貪食蛇教程](/javascript/snake/), [Node Sass 教程](/javascript/nodesass/), [Lodash 教程](/javascript/lodash/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看