express.js 链接数据库

在Express.js中链接数据库通常取决于你选择的数据库类型。最常见的数据库类型包括关系型数据库(如MySQL, PostgreSQL)和非关系型数据库(如MongoDB)。下面我将分别介绍如何在Express.js项目中链接这两种类型的数据库。

1. 链接MySQL或PostgreSQL数据库

对于MySQL或PostgreSQL这样的关系型数据库,你可以使用mysql或pg(对于PostgreSQL)这样的npm包来链接数据库。这里以mysql为例:

首先,你需要安装mysql包:

bash 复制代码
npm install mysql

然后,在你的Express.js应用中,你可以这样设置数据库连接:

javascript 复制代码
const express = require('express');
const mysql = require('mysql');

const app = express();
const PORT = 3000;

// 数据库配置
const db = mysql.createConnection({
  host     : 'localhost',
  user     : 'yourUsername',
  password : 'yourPassword',
  database : 'yourDatabase'
});

// 连接到数据库
db.connect(err => {
  if (err) {
    return console.error('error: ' + err.message);
  }

  console.log('Connected to the MySQL server.');
});

// 示例路由
app.get('/', (req, res) => {
  db.query('SELECT * FROM yourTable', (err, results, fields) => {
    if (err) throw err;
    res.send(results);
  });
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

// 优雅关闭数据库连接
process.on('SIGINT', () => {
  db.end(() => {
    console.log('MySQL connection is closed');
  });
});

2. 链接MongoDB数据库

对于MongoDB这样的非关系型数据库,你可以使用mongoose这样的npm包来链接数据库。mongoose提供了丰富的模型(Model)和文档(Document)操作功能。

首先,安装mongoose:

bash 复制代码
npm install mongoose

然后,在你的Express.js应用中设置MongoDB连接:

javascript 复制代码
const express = require('express');
const mongoose = require('mongoose');

const app = express();
const PORT = 3000;

// MongoDB连接配置
mongoose.connect('mongodb://localhost:27017/yourDatabase', {
  useNewUrlParser: true,
  useUnifiedTopology: true
})
.then(() => console.log('MongoDB connected...'))
.catch(err => console.log(err));

// 示例模型
const yourSchema = new mongoose.Schema({
  name: String,
  age: Number
});

const YourModel = mongoose.model('YourModel', yourSchema);

// 示例路由
app.get('/', async (req, res) => {
  try {
    const items = await YourModel.find();
    res.send(items);
  } catch (err) {
    res.status(500).send(err);
  }
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

注意:在上面的MongoDB示例中,我使用了async/await来处理异步操作,这是ES7引入的特性,它使得异步代码看起来和同步代码一样。确保你的Node.js版本支持async/await(Node.js 7.6+)。

以上就是在Express.js中链接MySQL/PostgreSQL和MongoDB数据库的基本方法。根据你的具体需求,你可能需要调整数据库连接配置或查询逻辑。

相关推荐
silvamux_1 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
米米商聊1 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
I Am a robert girl3 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒3 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
SelectDB3 小时前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB4 小时前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析
SelectDB4 小时前
Apache Doris + Vane:让多模态数据进入业务分析
大数据·数据库·数据分析
kyriewen4 小时前
我把 10 道面试题答案真跑了一遍:6 道是错的
前端·javascript·面试
WebInfra5 小时前
Rspack 2.3 发布:联手 SWC 团队带来全新编译器
前端·javascript·github
pjj198546 小时前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse