特色栏目

ASP源码

PHP源码

.NET源码

JSP源码

游戏频道
专题合集
关闭菜单
首页> 新闻文章> 第二节:使用Mongoose连接数据库

第二节:使用Mongoose连接数据库

时间:2026-01-16 16:00:02 作者:互联网

Mongoose 数据库介绍及安装指南

一、Mongoose 简介

Mongoose 是一个基于 Node.js 的 MongoDB 对象模型工具,它提供了一种更直观的方式来操作 MongoDB 数据库。通过 Mongoose,开发者可以使用面向对象的方式定义数据模型、进行数据验证和建立数据关联。

MongoDB 是一个基于分布式文件存储的 NoSQL 数据库,以其高性能、高可用性和易扩展性而著称。官方地址:www.mongodb.com/

二、MongoDB 安装与配置

下载安装

  1. 获取安装包
    访问官方下载地址:www.mongodb.com/try/downloa…
    建议选择 zip 格式,通用性更强

  2. 安装步骤

    • 将压缩包解压到 C:Program Files 目录
    • 创建数据存储目录:C:datadb(MongoDB 默认使用此路径存储数据)
    • 进入 MongoDB 的 bin 目录,打开命令行工具
    • 运行命令启动服务:mongod
  3. 验证启动 当命令行显示 waiting for connections 时,表示 MongoDB 服务已成功启动

  1. 连接数据库 在新命令行窗口中运行 mongo 命令即可连接本地 MongoDB 服务

使用建议

三、Mongoose 连接配置

1. 安装 Mongoose

npm install mongoose

2. 创建配置文件

在项目根目录下创建 config 文件夹,并添加 index.js 配置文件:

// 数据库配置参数
module.exports = {
  DBHOST: '127.0.0.1',     // 数据库主机地址
  DBPORT: 27017,           // 数据库端口
  DBNAME: 'node-ruoyi'     // 数据库名称
}

3. 创建数据库连接模块

db 文件夹下创建 db.js 文件:

// 数据库连接模块
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 文件,确保数据库连接成功后再启动服务器:

#!/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. 重启应用服务

npm start

总结

通过以上配置,您的 Node.js 应用已经成功集成了 Mongoose 和 MongoDB 数据库。这种配置方式具有以下优势:

  1. 模块化设计:将数据库配置与业务逻辑分离,便于维护
  2. 错误处理完善:包含连接成功、失败和关闭的完整回调机制
  3. 启动顺序优化:确保数据库连接成功后再启动 HTTP 服务
  4. 配置灵活:通过配置文件轻松调整数据库连接参数

现在您的应用已经具备了数据库操作能力,可以开始定义数据模型和进行数据操作了。

相关文章

相关应用

热门文章

猜你喜欢

返回顶部