大家好,我是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 定义数据模型并实现基本的增、删、改、查等操作。
如果我的文章能让您有所收获,欢迎一键三连(评论,点赞,关注),感谢!