Express是一款流行的Node.js Web框架,而MySQL則是目前最常用的關系型數據庫之一。本篇文章將介紹如何通過Express和MySQL實現一個簡單的登錄功能。
首先,我們需要通過npm安裝一些依賴包:
npm install express mysql express-session body-parser
接下來,我們需要在MySQL中創建一個名為“users”的表,用于存儲用戶信息。表結構可以如下:
CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(255) NOT NULL, password varchar(255) NOT NULL, PRIMARY KEY (id) );
現在我們開始編寫Express應用程序。首先,我們需要連接到MySQL數據庫:
const mysql = require('mysql'); const db = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'mydatabase' }); db.connect((err) =>{ if (err) throw err; console.log('Connected to MySQL database!'); });
接下來,我們需要使用Express中間件來解析POST請求的數據。這可以通過body-parser模塊來實現:
const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json());
現在我們開始編寫登錄功能路由。該路由將接收POST請求,并檢查數據庫中是否存在與輸入的用戶名和密碼匹配的記錄:
app.post('/login', (req, res) =>{ const { username, password } = req.body; const sql = 'SELECT * FROM users WHERE username = ? AND password = ?'; db.query(sql, [username, password], (err, result) =>{ if (err) { res.status(500).json({ message: 'Internal server error' }); } else if (result.length === 0) { res.status(401).json({ message: 'Wrong username or password' }); } else { res.status(200).json({ message: 'Successfully logged in' }); } }); });
最后,我們需要啟動Express應用程序:
app.listen(3000, () =>{ console.log('Express server is running on port 3000'); });
現在我們已經完成了一個簡單的Express和MySQL登錄功能。當用戶嘗試登錄時,我們會檢查他們的用戶名和密碼是否與數據庫中的記錄匹配,如果匹配則返回成功登錄的消息。否則,我們將返回錯誤消息。