node.js服务器数据库访问模块,提供代码
时间: 2024-10-25 22:05:30 浏览: 9
Node.js 中常用的数据库访问模块有很多种,其中最流行的是用于处理关系型数据库(如 MySQL, PostgreSQL)的 `mysql2` 和处理 NoSQL 数据库(如 MongoDB)的 `mongodb`。这里分别介绍这两个模块的基本用法。
**1. 对于MySQL(使用mysql2模块)**
```javascript
const mysql = require('mysql2/promise');
// 创建连接池
const pool = mysql.createPool({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
// 查询数据(示例:获取所有用户)
async function getUsers() {
try {
const [rows] = await pool.query('SELECT * FROM users');
console.log(rows);
} catch (error) {
console.error('Error connecting to DB:', error);
}
}
getUsers();
```
**2. 对于MongoDB(使用mongoose模块,假设是Mongoose ODM)**
首先安装 Mongoose:`npm install mongoose`
```javascript
const mongoose = require('mongoose');
// 连接到 MongoDB
mongoose.connect('mongodb://localhost:27017/your_db', {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true,
});
// 定义 User 模型
const UserSchema = new mongoose.Schema({
name: String,
email: { type: String, required: true, unique: true },
});
// 创建模型
const User = mongoose.model('User', UserSchema);
// 查询数据
async function getUsers() {
try {
const users = await User.find();
console.log(users);
} catch (error) {
console.error('Error connecting to MongoDB:', error);
}
}
getUsers().catch(err => console.error(err));
```
**相关问题:**
1. 如何在 Node.js 中关闭数据库连接?
2. Mongoose 和 Sequelize 在 Node.js 都能操作数据库,它们有什么区别?
3. 如何处理数据库连接错误并优雅地重试?
阅读全文