Node.js(Node)是一個基於Chrome V8 引擎所建構的JavaScript 執行環境。它可以使JavaScript運作在伺服器端,具有高效能、輕量、跨平台等功能。目前,Node已經成為一個相當重要的後端開發語言。
本文旨在介紹如何使用Node.js實作資料庫的增刪改查,特別是操作關係型資料庫。這裡我們以MySQL為例進行講解。
首先,我們需要安裝MySQL資料庫並建立一些測試資料。
在安裝MySQL之後,需要登入MySQL伺服器,我們可以使用MySQL命令列工具或圖形化工具如phpMyAdmin,Navicat等。在命令列下使用以下命令,進入MySQL:
$ mysql -u root -p
它會提示輸入密碼,輸入之後回車即可。
然後在MySQL命令列中執行以下命令,建立一個名為test的資料庫和一個名為user的表:
mysql> create database test; mysql> use test; mysql> create table user(id int not null auto_increment, name varchar(255), age int, primary key (id)); mysql> insert into user(name, age) values('Tom', 18); mysql> insert into user(name, age) values('Jack', 25); mysql> insert into user(name, age) values('Lucy', 27);
這裡我們建立了一個名為test的資料庫,然後在該資料庫中建立了一個名為user的表,並在表中插入了三個資料。
Node.js官方提供了mysql模組,可以方便地操作MySQL資料庫。在使用mysql模組之前,需要安裝它,使用以下命令安裝:
$ npm install mysql --save
連接MySQL資料庫並進行操作之前,需要建立一個連接。
可以使用下面的方法連接到MySQL資料庫:
var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', // 数据库IP地址 user: 'root', // 数据库用户名 password: '123456',// 数据库密码 database: 'test' // 数据库名称 }); connection.connect(function(err) { if (err) { console.error('error: ' + err.stack); return; } console.log('connected as id ' + connection.threadId); }); //断开连接 connection.end();
這裡我們建立了一個connection對象,並傳入了資料庫連接參數。透過呼叫connection.connect()
函數,我們可以嘗試連接資料庫。如果連線不上,會輸出錯誤訊息,否則會輸出連線成功的訊息。最後一行connection.end()
是用來斷開與資料庫的連線。
接下來,我們來看看如何用Node.js實作常見的資料操作。
使用MySQL插入資料的方法是INSERT
,在Node.js中使用mysql模組插入資料的方法是:
var insertSql = 'insert into user(name, age) values (?,?)'; var insertParams = ['Tom', 20]; connection.query(insertSql, insertParams, function(err, result) { if (err) { console.log('[INSERT ERROR] - ', err.message); return; } console.log('-------INSERT----------'); console.log('INSERT ID:', result.insertId); console.log('INSERT ID:', result.affectedRows); console.log('#######################'); });
這裡的?
是語句佔位符,後面的insertParams是插入的參數。在回調函數中,如果出錯,則輸出錯誤訊息。如果插入成功,則可以從result.resultId中取得插入的資料的ID,從result.affectedRows中取得影響的行數。
查詢MySQL資料的方法是SELECT
,在Node.js中查詢的範例程式碼如下:
var selectSql = 'SELECT * FROM user'; connection.query(selectSql, function(err, rows) { if (err) { console.log('[SELECT ERROR] - ', err.message); return; } console.log('-------SELECT----------'); console.log(rows); console.log('#######################'); });
這裡的*
是通配符,表示傳回所有欄位。 rows
是MySQL傳回的查詢結果,它是一個數組,包含了所有查詢結果。可以使用循環遍歷該數組來獲取查詢結果的詳細資訊。
在MySQL中更新資料的方法是UPDATE
,在Node.js中使用mysql模組的程式碼如下:
var updateSql = 'UPDATE user SET age = ? WHERE name = ?'; var updateParams = [22, 'Tom']; connection.query(updateSql, updateParams, function(err, result) { if (err) { console.log('[UPDATE ERROR] - ', err.message); return; } console.log('-------UPDATE----------'); console.log('UPDATE affectedRows', result.affectedRows); console.log('#######################'); });
這裡的欄位名稱都需要用反引號包裹起來。
在MySQL中刪除資料的方法是DELETE
,在Node.js中使用的範例程式碼如下:
var deleteSql = 'DELETE FROM user WHERE name = ?'; var deleteParams = ['Tom']; connection.query(deleteSql, deleteParams, function(err, result) { if (err) { console.log('[DELETE ERROR] - ', err.message); return; } console.log('-------DELETE----------'); console.log('DELETE affectedRows', result.affectedRows); console.log('#######################'); });
Node.js提供了非常方便的操作MySQL資料庫的功能,相信這篇文章對於想要學習Node.js的朋友們會有所幫助。實際應用中,需要結合自身的業務需求進行開發,僅供參考。
以上是講解nodejs實作資料庫的增刪改查的詳細內容。更多資訊請關注PHP中文網其他相關文章!