📜  Express.js 中的数据库集成(1)

📅  最后修改于: 2023-12-03 15:00:40.579000             🧑  作者: Mango

Express.js 中的数据库集成

在现代 Web 开发中,数据库使用是必不可少的一部分。Express.js 提供了方便的数据库集成方式,使开发人员可以快速地与数据库进行交互。本文将介绍在 Express.js 中集成常用数据库的方法。

MongoDB

MongoDB 是一种文档数据库,具有灵活的数据模型和强大的查询功能。在 Express.js 中集成 MongoDB 可以使用 mongoose 库。

安装和连接

首先需要安装 mongoose,可以使用 npm 安装:

npm install --save mongoose

然后在应用中连接数据库:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/myapp', { useNewUrlParser: true })
  .then(() => console.log('MongoDB connected'))
  .catch(err => console.error(err));

这里连接了一个名为 myapp 的本地 MongoDB 数据库,连接成功后会输出 MongoDB connected,否则会输出错误信息。

定义模型和查询

定义模型可以使用 mongoose.Schemamongoose.model,例如:

const UserSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String,
});

const User = mongoose.model('User', UserSchema);

User.find({}, (err, users) => {
  if (err) return console.error(err);
  console.log(users);
});

这里定义了一个名为 User 的模型,包含三个属性 nameageemail。然后使用 User.find 方法查询所有用户,并输出结果。

MySQL

MySQL 是一种广泛使用的关系型数据库,支持大型数据和复杂查询。在 Express.js 中集成 MySQL 可以使用 mysql 库。

安装和连接

首先需要安装 mysql,可以使用 npm 安装:

npm install --save mysql

然后在应用中连接数据库:

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'myuser',
  password: 'mypassword',
  database: 'mydb',
});

connection.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL');
    console.error(err);
    return;
  }
  console.log('MySQL connected');
});

这里连接了一个名为 mydb 的本地 MySQL 数据库,连接成功后会输出 MySQL connected,否则会输出错误信息。

查询

查询可以使用 connection.query 方法,例如:

connection.query('SELECT * FROM users', (err, results, fields) => {
  if (err) throw err;
  console.log(results);
});

这里查询了 users 表中的所有数据,并输出结果。

PostgreSQL

PostgreSQL 是一种开源的关系型数据库,具有高度可扩展性和丰富的数据类型。在 Express.js 中集成 PostgreSQL 可以使用 pg 库。

安装和连接

首先需要安装 pg,可以使用 npm 安装:

npm install --save pg

然后在应用中连接数据库:

const { Pool } = require('pg');

const pool = new Pool({
  user: 'myuser',
  host: 'localhost',
  database: 'mydb',
  password: 'mypassword',
  port: 5432,
});

pool.query('SELECT NOW()', (err, res) => {
  if (err) {
    console.error('Error connecting to PostgreSQL');
    console.error(err);
    return;
  }
  console.log('PostgreSQL connected');
  pool.end();
});

这里连接了一个名为 mydb 的本地 PostgreSQL 数据库,连接成功后会输出 PostgreSQL connected,否则会输出错误信息。

查询

查询可以使用 pool.query 方法,例如:

pool.query('SELECT * FROM users', (err, res) => {
  if (err) throw err;
  console.log(res.rows);
});

这里查询了 users 表中的所有数据,并输出结果。

结论

Express.js 中集成数据库可以使用许多不同的库和方法,这里介绍了几种常用的方式。选择哪种方式取决于具体的应用场景,例如要使用哪种数据库类型、要查询哪些数据等等。无论使用何种方式,都需要注意安全性和性能等方面的问题。