Mongoose操作MongoDB数据库(1):项目创建与连接配置

大家好,我是WangHappy,一名主业前端,副业全栈的程序员,在这里我会分享关于前端进阶全栈的常用技术基本入门操作。 如果我的文章能让您有所收获,欢迎一键三连(评论,点赞,关注)。


Mongoose介绍

Mongoose 是为Node.js设计的一个 MongoDB 的对象数据建模库。目的是为了服务端与 MongoDB 数据库进行交互时提供更简化的数据库操作接口。

使用 Mongoose 需要掌握的前置条件:

1.需要掌握的知识:Node.js、MongoDB、Express/koa框架

2.确保电脑已安装Node.js,且版本在 Node16 以上。可以打开cmd终端,输入 node -v 来确认Node安装的版本。

3.确认已在本地或服务器启动MongoDB数据服务,可参考我之前的系列文章 Windows系统搭建MongoDB 来实现数据库的安装、配置、部署。

本专题我们将使用 Node.js + Express + Mongoose 来实现服务端的开发。

创建项目

新建一个文件夹,项目名称自定义(不要使用中文名称)。

打开终端,进入到项目文件夹,在根目录下执行 Node.js 初始化命令:

csharp 复制代码
npm init -y

项目目录下会自动生成一个 package.json 的文件。

swift 复制代码
{
  "name": "myproject",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

我们简单来了解几个比较重要的字段:

name:表示项目的名称。

version:项目的版本(默认是1.0.0)。

main:入口文件,默认是 index.js

scripts:定义一些常用的命令。

安装主要依赖

完成初始化项目后,继续在终端安装项目所需的依赖,执行以下命令:

css 复制代码
npm i express cors dotenv nodemon

express:Node.js最流行的框架之一,用来处理服务端的路由,中间件,静态文件等服务。

cors: 解决跨域请求的问题。

dotenv:读取.env文件中的环境变量,.env文件通常配置数据库的IP地址,用户名,密码...等重要隐私信息。

nodemon:监控服务端代码变化并自动更新,避免每次修改服务端代码都需要重启服务的繁琐流程。

启动 Node.js 服务

相关依赖安装完成后,在项目根目录下分别创建 index.js.env 文件

go 复制代码
📦myproject
 ┣ 📜.evn
 ┣ 📜index.js
 ┗ 📜package.json

index.js 作为服务端入口文件,与前文提到的 package.json 中的 main 入口文件相对应。代码如下:

javascript 复制代码
const express = require('express') // 引入express框架
const app = express() // 创建一个 express 应用实例
const cors = require('cors') // 引入 cors 中间件
require('dotenv').config() // 加载环境变量

app.use(cors()) // 启用 cors 中间件,允许跨域请求
app.use(express.urlencoded({ extended: true })) // 处理 application/x-www-form-urlencoded 请求体,解析表单数据

const PORT = process.env.PORT || 3000 // 配置访问端口号
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
}) // 监听服务,如果服务正常启动会打印该文字

.env 文件用来配置数据库端口、IP、账号、密码,配置如下:

ini 复制代码
# MongoDB 配置
MONGO_USERNAME=your_name # 数据库账号
MONGO_PASSWORD=your_password # 数据库密码
MONGO_HOST=192.168.0.0 # 数据库ip地址
MONGO_PORT=27017 # 端口号,MongoDB通常为27017
MONGO_DATABASE=test # 要访问的MongoDB 实例下的数据库 

# 服务器端口号配置
PORT=3000

注意:如果项目是使用 git 管理的,那在一定要在 .gitgnore 文件里将 .env 添加进去,避免将.env 文件上传到git仓库中,从而导致隐私信息泄露。

现在我们来启动Node服务,在 package.json 文件中找到 scripts,添加一条常用命令,代码如下:

json 复制代码
"scripts": {
   "start": "nodemon index.js"
 }

保存文件,然后在项目根目录下打开终端,执行 npm run start

此时如果终端输出 Server is running on port 3000 代表 Node 服务已经成功启动。

使用Mongoose连接数据库

现在执行最后一步,使用 Mongoose 连接 MongoDB 数据库。

首先在项目里安装 Mongoose,在项目中打开终端执行 npm i mongoose

安装完成后,在入口文件 index.js 中使用 Mongoose, 添加代码如下:

javascript 复制代码
const mongoose = require('mongoose') // 引入mongoose

// 从.env文件中获取环境变量构建 MongoDB 连接字符串
// process.env.MONGO_USERNAME:用户名
// process.env.MONGO_PASSWORD:密码
// process.env.MONGO_HOST:IP地址
// process.env.MONGO_PORT:端口号
// process.env.MONGO_DATABASE:要连接的数据库

const mongoURL = `mongodb://${process.env.MONGO_USERNAME}:${process.env.MONGO_PASSWORD}@${process.env.MONGO_HOST}:${process.env.MONGO_PORT}/${process.env.MONGO_DATABASE}`;

mongoose.connect(mongoURL, {
  authSource: 'admin' // 指定用户的数据库进行身份验证,默认情况下,认证数据库是 `admin`
})

// 连接数据库成功返回的信息
mongoose.connection.on('connected', () => {
  console.log('Connected to MongoDB')
})

// 连接失败返回错误信息
mongoose.connection.on('error', (err) => {
  console.log('MongoDB connection error: ' + err)
})

// 中断连接返回的提示
mongoose.connection.on('disconnected', () => {
  console.log('MongoDB disconnected')
})

代码添加完成后,在项目目录下执行 npm run start 重启服务。

终端如果打印 Connected to MongoDB,则代表连接数据库成功。


至此,我们已经完成了Node项目的创建,并成功的使用 Mongoose 连接上了数据库。

在下一章,我们将学习了解如何使用 Mongoose 定义数据模型并实现基本的增、删、改、查等操作。

如果我的文章能让您有所收获,欢迎一键三连(评论,点赞,关注),感谢!

相关推荐
LengineerC1 小时前
我写了一个VSCode的仿Neovide光标动画
前端·visual studio code
OpenTiny社区1 小时前
低代码运行时渲染搞不懂?TinyEngine 从理论到实践全攻略,看完直接上手!
前端·vue.js·低代码
未央几许1 小时前
使用ffmpeg.wasm解码视频(avi,mpg等格式)问题
前端·ffmpeg
LJLJ1 小时前
BPMN的Activity节点渲染
前端
水水不水啊1 小时前
通过一个域名,借助IPV6免费远程访问自己家里的设备
前端·python·算法
izx8881 小时前
JavaScript 面向对象编程(OOP):从原始模式到原型继承
前端·javascript
圆弧YH1 小时前
edge + google
前端·edge
b***59431 小时前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
前端fighter1 小时前
全栈项目:旅游攻略系统
前端·后端·源码