mysql 执行end,node mysql connection.end() 和 connection.destroy()

查询队列指的是什么

在官方文档的Introduction部分其实就讲到了,文档传送门:Every method you invoke on a connection is queued and executed in sequence.Closing the connection is done using end() which makes sure all remaining queries are executed before sending a quit packet to the mysql server.

举例,下面的两个调用,在内部是排队执行的。connection.query('SELECT * FROM hello');

connection.query('SELECT * FROM world');

end、destroy的区别

两者的区别很明显,还是以前面的代码为例子。

1、connection.end():把查询1、查询2顺利执行完,得到查询结果后,断开mysql服务器的连接。

2、connection.destryo():直接断开连接,不管还有多少查询没执行完。

connection.query('SELECT * FROM hello'); // 查询1

connection.query('SELECT * FROM world'); // 查询2

以下是使用 Node.js 和 MySQL 实现登录的示例代码,供参考: 1. 安装依赖 ```bash npm install express mysql body-parser express-session --save ``` 2. 创建数据库 在 MySQL 中创建一个名为 `test` 的数据库,并在其中创建一个名为 `users` 的表,表结构如下: ```sql CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); ``` 3. 编写服务器代码 ```javascript const express = require('express'); const session = require('express-session'); const bodyParser = require('body-parser'); const mysql = require('mysql'); const app = express(); // 创建 MySQL 连接池 const pool = mysql.createPool({ host: 'localhost', user: 'root', password: '', database: 'test' }); // 配置中间件 app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.use(session({ secret: 'session secret', resave: false, saveUninitialized: true, cookie: { secure: false } })); // 处理登录请求 app.post('/login', (req, res) => { const { username, password } = req.body; const sql = `SELECT * FROM users WHERE username = ? AND password = ?`; pool.query(sql, [username, password], (err, results) => { if (err) { console.error(err); res.sendStatus(500); return; } if (results.length > 0) { req.session.username = username; res.json({ success: true }); } else { res.json({ success: false }); } }); }); // 处理退出请求 app.post('/logout', (req, res) => { req.session.destroy(); res.json({ success: true }); }); // 监听端口 app.listen(3000, () => { console.log('Server is running on port 3000.'); }); ``` 在上述代码中,我们创建了一个 MySQL 连接池,用于连接数据库。在处理登录请求时,我们通过查询数据库判断用户名和密码是否匹配,如果匹配则将用户名存储在 session 中,并返回登录成功的消息。在处理退出请求时,我们销毁 session,以达到退出登录的效果。 4. 编写客户端代码 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h1>Login</h1> <form id="login-form"> <label>Username:</label> <input type="text" name="username"><br> <label>Password:</label> <input type="password" name="password"><br> <button type="submit">Login</button> </form> <p id="message"></p> <script> const form = document.getElementById('login-form'); const message = document.getElementById('message'); form.addEventListener('submit', (event) => { event.preventDefault(); const data = new FormData(form); fetch('/login', { method: 'POST', body: data }) .then(response => response.json()) .then(result => { if (result.success) { message.textContent = 'Login success.'; } else { message.textContent = 'Login failed.'; } }) .catch(error => { console.error(error); }); }); </script> </body> </html> ``` 在上述代码中,我们创建了一个登录表单,当用户提交表单时,通过 Fetch API 发送 POST 请求到服务器端,以验证用户的用户名和密码。如果登录成功,则在页面上显示一条消息,否则显示登录失败的消息。 以上就是一个使用 Node.js 和 MySQL 实现登录的示例代码。请注意,此代码仅供参考,实际应用中可能需要进行更多的安全性和稳定性方面的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值