下面是一份“Node.js连接MySQL与基本用法示例”的完整攻略:
Node.js连接MySQL与基本用法示例
什么是MySQL?
MySQL是最流行的开源关系型数据库管理系统,在众多Web应用中用作数据库服务器。
Node.js连接MySQL
Node.js具有连接MySQL数据库的能力,可以通过npm安装MySQL模块并在Node.js中使用它进行数据库操作。
安装MySQL模块
使用以下命令安装MySQL模块:
npm install mysql
连接到MySQL数据库
首先,需要通过createConnection()方法创建数据库连接。例如:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'test'
});
connection.connect();
其中,createConnection()方法接受一个JSON对象作为参数,包括以下键:
- host:MySQL服务器主机名,默认为localhost
- user:MySQL用户名,默认为root
- password:MySQL用户密码,默认为空
- database:要连接的数据库名称,默认为空
然后,调用connect()
方法连接到数据库。如果连接成功,控制台将输出一条成功的消息。
查询数据
Node.js连接MySQL后,可以执行SQL语句查询数据。例如:
connection.query('SELECT * FROM users', function (error, results, fields) {
if (error) throw error;
console.log(results);
});
// 或使用ES6语法
connection.query('SELECT * FROM users')
.then(results => {
console.log(results);
})
.catch(error => {
throw error;
});
其中,query()
方法接受一个SQL语句作为参数,并为异步操作。它将接受包含查询数据的结果集的回调。而Promise是ES6之后加入的,在异步操作之后会返回一个Promise对象,可以用then和catch方法来进行回调操作。
插入数据
Node.js连接MySQL后,可以执行SQL语句插入数据。例如:
const user = { name: 'John', email: 'john@example.com' };
connection.query('INSERT INTO users SET ?', user, function (error, results, fields) {
if (error) throw error;
console.log(results);
});
// 或使用ES6语法
const user = { name: 'John', email: 'john@example.com' };
connection.query('INSERT INTO users SET ?', user)
.then(results => {
console.log(results);
})
.catch(error => {
throw error;
});
其中,INSERT INTO
语句将新的行插入到数据表中。SET
关键字用于设置要插入的值。?
符号是一个占位符,表示将使用对象的值进行替换。这种方法可以预防SQL注入攻击。
示例
下面是关于Node.js连接MySQL的两个例子:
查询数据并使用Express路由器将它们作为JSON响应发送
const express = require('express');
const mysql = require('mysql');
const app = express();
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'test'
});
connection.connect();
app.get('/users', function (req, res) {
connection.query('SELECT * FROM users', function (error, results, fields) {
if (error) throw error;
res.json(results);
});
});
app.listen(3000, function () {
console.log('Server listening on port 3000!');
});
插入数据并使用Express路由器将成功响应发送
const express = require('express');
const mysql = require('mysql');
const app = express();
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'test'
});
connection.connect();
app.post('/users', function (req, res) {
const user = { name: req.body.name, email: req.body.email };
connection.query('INSERT INTO users SET ?', user, function (error, results, fields) {
if (error) throw error;
res.send('User added to database.');
});
});
app.listen(3000, function () {
console.log('Server listening on port 3000!');
});
相关说明
上述两个示例使用了Express框架进行设计。第一个示例是一个GET请求,它将查询所有用户数据并将其作为JSON响应发送。第二个示例是一个POST请求,它将新用户的姓名和电子邮件添加到数据库中,并发出成功的响应。需要注意的是,第二个示例必须使用body-parser模块来解析POST请求中的请求正文数据。
敬请注意,由于MySQL的权限配置,您的MySQL服务可能需要进行一些更改才能与Node.js进行通信。因此我们建议谨慎配置。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js连接mysql与基本用法示例 - Python技术站