Mongoose 是一个基于 Node.js 的 MongoDB 对象模型工具,它提供了一种更直观的方式来操作 MongoDB 数据库。通过 Mongoose,开发者可以使用面向对象的方式定义数据模型、进行数据验证和建立数据关联。
MongoDB 是一个基于分布式文件存储的 NoSQL 数据库,以其高性能、高可用性和易扩展性而著称。官方地址:www.mongodb.com/
获取安装包
访问官方下载地址:www.mongodb.com/try/downloa…
建议选择 zip 格式,通用性更强
安装步骤
C:Program Files 目录C:datadb(MongoDB 默认使用此路径存储数据)bin 目录,打开命令行工具mongod验证启动
当命令行显示 waiting for connections 时,表示 MongoDB 服务已成功启动
mongo 命令即可连接本地 MongoDB 服务bin 目录添加到系统环境变量 Path 中,方便全局使用 mongod 命令npm install mongoose
在项目根目录下创建 config 文件夹,并添加 index.js 配置文件:
// 数据库配置参数
module.exports = {
DBHOST: '127.0.0.1', // 数据库主机地址
DBPORT: 27017, // 数据库端口
DBNAME: 'node-ruoyi' // 数据库名称
}
在 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 连接已关闭')
})
}
更新 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}`)
}
})
npm start
通过以上配置,您的 Node.js 应用已经成功集成了 Mongoose 和 MongoDB 数据库。这种配置方式具有以下优势:
现在您的应用已经具备了数据库操作能力,可以开始定义数据模型和进行数据操作了。