首先我们需要确保已经安装好Node和MySQL,并且已经创建好了相应的数据库和数据表。
- 创建Express工程
首先,我们需要创建一个新的Express应用程序,可以通过执行以下命令进行创建:
$ npm install -g express-generator
$ express myapp
$ cd myapp
$ npm install
这样就可以创建一个名为 myapp
的Express应用程序,并且安装了相关的依赖包。
- 安装MySQL模块
接下来,我们需要安装 mysql
模块来连接MySQL数据库。可以通过以下命令进行安装:
$ npm install mysql --save
- 连接MySQL数据库
在 app.js
文件中添加以下代码,连接数据库,并且导出数据库连接的对象 pool
:
const mysql = require('mysql');
const pool = mysql.createPool({
connectionLimit: 10,
host: 'localhost',
user: 'root',
password: 'password',
database: 'myapp'
});
module.exports = pool;
在上面的代码中,我们创建了一个连接池,设置了最大连接数、主机名、用户名、密码、数据库名等信息,并且将其导出。
- 实现用户注册
首先,我们需要创建一个注册路由,接收从客户端传来的用户名和密码,并且将其插入到数据库中。可以在 routes
目录下的 users.js
文件中添加以下代码:
const express = require('express');
const router = express.Router();
const pool = require('../app');
router.post('/register', (req, res) => {
const username = req.body.username;
const password = req.body.password;
pool.getConnection((err, connection) => {
if (err) {
res.status(500).send('Database Error');
return;
}
const query = `INSERT INTO users (username, password) VALUES ('${username}', '${password}')`;
connection.query(query, (error, results, fields) => {
connection.release();
if (error) {
res.status(500).send('Database Error');
return;
}
res.status(200).send('Success');
});
});
});
module.exports = router;
在上面的代码中,我们使用 POST
方法来处理客户端发来的注册请求,在注册请求中,我们从请求体中获取了用户名和密码,然后插入到数据库中,如果插入成功,则返回一个成功的响应状态码和消息。
- 实现用户登录
接下来,我们需要实现用户登录功能。可以在 routes
目录下的 users.js
文件中添加以下代码:
router.post('/login', (req, res) => {
const username = req.body.username;
const password = req.body.password;
pool.getConnection((err, connection) => {
if (err) {
res.status(500).send('Database Error');
return;
}
const query = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`;
connection.query(query, (error, results, fields) => {
connection.release();
if (error) {
res.status(500).send('Database Error');
return;
}
if (results.length === 0) {
res.status(401).send('Unauthorized');
return;
}
res.status(200).send('Success');
});
});
});
在上面的代码中,我们使用 POST
方法来处理客户端发来的登录请求,在登录请求中,我们从请求体中获取了用户名和密码,然后查询数据库,如果用户名和密码正确,则返回一个成功的响应状态码和消息,否则返回401未授权的响应。
示例1:实现用户注册
客户端代码(使用Fetch API):
fetch('/users/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: 'test',
password: '123456'
})
})
.then(response => {
if (response.ok) {
console.log('注册成功');
} else {
console.error('注册失败');
}
})
.catch(error => {
console.error('网络错误');
});
示例2:实现用户登录
客户端代码(使用jQuery):
$.ajax({
url: '/users/login',
type: 'POST',
dataType: 'json',
data: {
username: 'test',
password: '123456'
},
success: function(data) {
console.log('登录成功');
},
error: function(xhr, textStatus, error) {
console.error('登录失败');
}
});
以上就是使用Node和Express连接MySQL实现登录注册的实现代码的攻略。需要注意的是,在实际应用中,我们需要对用户输入的密码进行加密处理,保证用户的数据安全。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用node和express连接mysql实现登录注册的实现代码 - Python技术站