本文將介紹如何使用 Node.js 建立一個資料庫伺服器。 Node.js 是一個基於 Chrome JavaScript 引擎的伺服器端 JavaScript 開發工具,可以輕鬆實現非同步事件驅動的程式設計方式。在使用 Node.js 進行伺服器開發時,我們可以採用不同的框架和函式庫來開發,其中最受歡迎的是 Express.js,但其他框架也可以實現相同的功能。為了讓我們的伺服器更具擴充性和可靠性,我們需要選擇一個適合我們的資料庫來儲存資料。本文將示範如何使用 MySQL 資料庫儲存資料。
在開始之前,我們需要在系統中安裝好 Node.js 和 MySQL。 Node.js 可從官方網站(https://nodejs.org)下載,MySQL 也可以從官方網站(https://www.mysql.com/)下載。
首先,我們需要在 MySQL 中建立一個資料庫和一個資料表來儲存我們的資料。使用下列命令建立一個名為 test 資料庫:
CREATE DATABASE test;
接下來,建立一個名為 users 的資料表:
USE test; CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, PRIMARY KEY (id), UNIQUE KEY email (email) );
此表包含三個欄位:id、name 和 email。 id 列是一個自動增量列,可確保每個條目都有一個唯一的 ID。 name 和 email 列是必需的字段,因此我們在表定義中定義了 NOT NULL 約束。 email 欄位還有一個獨特鍵索引,以確保每個電子郵件地址只能出現一次。
接下來,我們需要在 Node.js 中安裝 MySQL 模組。我們可以使用 npm 指令來安裝 mysql 模組:
npm install mysql
在應用程式中連接到 MySQL 需要使用 mysql 模組。我們需要使用連線資訊來實例化連線物件:
const mysql = require('mysql'); const connection = mysql.createConnection({ host : 'localhost', user : 'user', password : 'password', database : 'test' });
在這個範例中,我們定義了資料庫連線資訊。如果您的 MySQL 伺服器在本機上,則主機名稱應為 localhost。注意,該範例中使用的是密碼,這是不安全的做法。在實際使用時,需要使用更安全的措施,例如從環境變數中讀取密碼。
現在,我們可以寫一個 API 來建立新使用者、取得使用者資訊和刪除使用者。我們需要透過 Express.js 來實現路由功能。在此範例中,我們使用了 Express.js。
const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.json()); // 创建新用户 app.post('/users', (req, res) => { const user = req.body; connection.query('INSERT INTO users SET ?', user, (err, results) => { if (err) { res.status(500).send(err); } else { res.status(200).send(results); } }); }); // 获取用户信息 app.get('/users/:id', (req, res) => { const id = req.params.id; connection.query('SELECT * FROM users WHERE id = ?', id, (err, results) => { if (err) { res.status(500).send(err); } else { res.status(200).send(results[0]); } }); }); // 删除用户 app.delete('/users/:id', (req, res) => { const id = req.params.id; connection.query('DELETE FROM users WHERE id = ?', id, (err, results) => { if (err) { res.status(500).send(err); } else { res.status(200).send(results); } }); }); // 启动服务器 app.listen(3000, () => { console.log('Server started on port 3000'); });
在上述程式碼中,我們使用 body-parser 中間件來解析傳入的 JSON 資料。它也支援解析.urlencoded 資料。我們將路由程式定義為 POST、GET 和 DELETE 操作,它們將建立新使用者、取得使用者資訊和刪除使用者。在每個請求中,我們使用 connection.query() 函數來執行 SQL 查詢,並將結果傳回給客戶端。如果查詢失敗,則傳回 500 錯誤。
現在,我們可以使用 curl 指令測試我們的 API。以下是一些範例指令:
建立新使用者:
curl -X POST -H 'Content-Type: application/json' -d '{"name": "Alice", "email": "alice@example.com"}' http://localhost:3000/users
取得使用者資訊:
curl http://localhost:3000/users/1
刪除使用者:
curl -X DELETE http://localhost:3000/users/1
現在,我們已經成功地使用Node.js 和MySQL 建立了一個簡單的資料庫伺服器。它可以擴展到支援更多的 API 操作,或使用其他資料庫系統,例如 MongoDB 或 PostgreSQL。
以上是nodejs資料庫伺服器搭建的詳細內容。更多資訊請關注PHP中文網其他相關文章!