Mongoose 数据库介绍及安装指南
一、Mongoose 简介
Mongoose 是一个基于 Node.js 的 MongoDB 对象模型工具,它提供了一种更直观的方式来操作 MongoDB 数据库。通过 Mongoose,开发者可以使用面向对象的方式定义数据模型、进行数据验证和建立数据关联。
MongoDB 是一个基于分布式文件存储的 NoSQL 数据库,以其高性能、高可用性和易扩展性而著称。官方地址:www.mongodb.com/
二、MongoDB 安装与配置
下载安装
-
获取安装包
访问官方下载地址:www.mongodb.com/try/downloa...
建议选择 zip 格式,通用性更强
-
安装步骤
- 将压缩包解压到
C:\Program Files目录 - 创建数据存储目录:
C:\data\db(MongoDB 默认使用此路径存储数据) - 进入 MongoDB 的
bin目录,打开命令行工具 - 运行命令启动服务:
mongod
- 将压缩包解压到
-
验证启动 当命令行显示
waiting for connections时,表示 MongoDB 服务已成功启动

- 连接数据库 在新命令行窗口中运行
mongo命令即可连接本地 MongoDB 服务
使用建议
- 环境变量配置 :将 MongoDB 的
bin目录添加到系统环境变量Path中,方便全局使用mongod命令 - 操作注意:请勿选中服务端窗口内容,否则会导致服务暂停。如需取消选中,可按回车键

三、Mongoose 连接配置
1. 安装 Mongoose
bash
npm install mongoose
2. 创建配置文件
在项目根目录下创建 config 文件夹,并添加 index.js 配置文件:
javascript
// 数据库配置参数
module.exports = {
DBHOST: '127.0.0.1', // 数据库主机地址
DBPORT: 27017, // 数据库端口
DBNAME: 'node-ruoyi' // 数据库名称
}
3. 创建数据库连接模块
在 db 文件夹下创建 db.js 文件:
javascript
// 数据库连接模块
module.exports = function(success, error) {
// 错误回调函数默认处理
if (typeof error !== 'function') {
error = () => {
console.log('数据库连接失败')
}
}
const mongoose = require('mongoose')
const { DBHOST, DBPORT, DBNAME } = require('../config')
// 启用严格查询模式
mongoose.set('strictQuery', true)
// 建立数据库连接
mongoose.connect(`mongodb://${DBHOST}:${DBPORT}/${DBNAME}`)
// 连接成功回调
mongoose.connection.once('open', () => {
console.log('MongoDB 连接成功')
success()
})
// 连接错误回调
mongoose.connection.on('error', () => {
console.log('MongoDB 连接出错')
error?.()
})
// 连接关闭回调
mongoose.connection.on('close', () => {
console.log('MongoDB 连接已关闭')
})
}
4. 修改应用入口文件
更新 bin/www 文件,确保数据库连接成功后再启动服务器:
javascript
#!/usr/bin/env node
/**
* 模块依赖
*/
const db = require('../db/db')
// 先建立数据库连接,成功后启动应用
db(() => {
var app = require('../app')
var debug = require('debug')('back:server')
var http = require('http')
/**
* 从环境变量获取端口号
*/
var port = normalizePort(process.env.PORT || '3000')
app.set('port', port)
/**
* 创建 HTTP 服务器
*/
var server = http.createServer(app)
/**
* 监听指定端口
*/
server.listen(port)
server.on('error', onError)
server.on('listening', onListening)
/**
* 端口号标准化函数
*/
function normalizePort(val) {
var port = parseInt(val, 10)
if (isNaN(port)) {
// 命名管道
return val
}
if (port >= 0) {
// 端口号
return port
}
return false
}
/**
* HTTP 服务器错误处理
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error
}
var bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port
// 处理特定监听错误
switch (error.code) {
case 'EACCES':
console.error(bind + ' 需要提升的权限')
process.exit(1)
break
case 'EADDRINUSE':
console.error(bind + ' 端口已被占用')
process.exit(1)
break
default:
throw error
}
}
/**
* HTTP 服务器监听事件
*/
function onListening() {
var addr = server.address()
var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port
debug('正在监听 ' + bind)
console.log(`服务器已启动,监听端口: ${port}`)
}
})
5. 重启应用服务
bash
npm start

总结
通过以上配置,您的 Node.js 应用已经成功集成了 Mongoose 和 MongoDB 数据库。这种配置方式具有以下优势:
- 模块化设计:将数据库配置与业务逻辑分离,便于维护
- 错误处理完善:包含连接成功、失败和关闭的完整回调机制
- 启动顺序优化:确保数据库连接成功后再启动 HTTP 服务
- 配置灵活:通过配置文件轻松调整数据库连接参数
现在您的应用已经具备了数据库操作能力,可以开始定义数据模型和进行数据操作了。