Express及mongoose搭建数据库(增删改查)

express是什么?

Express.js 是一个基于 Node.js 平台的 Web 应用程序框架,它旨在帮助开发者轻松构建和管理 Web 服务和应用程序。Express 提供了许多强大的功能,使得创建可扩展、灵活且高性能的 Web 应用变得相对容易。

安装Express步骤

确保已经安装了 Node.js 和 npm,使用npm创建express项目

javascript 复制代码
// 步骤一,安装express包
npm i express -g

// 步骤二,安装express-generator包
npm i express-generator -g

使用express-generator生成express项目

javascript 复制代码
// node-api是项目名称
express --no-view node-api

// 使用cd进入创建的项目文件,例如
cd node-api

//进入项目文件后初始化项目
npm i

配置跨域,安装cors模块,可参照

javascript 复制代码
// 安装命令
npm i cors --save

// 在app.js文件中引入cors模块并使用,例如
var express = require("express");
var path = require("path");

..........
..........

// 在这里引入即可
var cors = require("cors");

var indexRouter = require("./routes/index");
var usersRouter = require("./routes/users");

var app = express();
// 在这里使用
app.use(cors());

.........
.........

module.exports = app;

安装nodemon这个包

javascript 复制代码
npm i nodemon -D

然后修改package.json中的配置,修改成nodemon

javascript 复制代码
 "scripts": {
    "start": "nodemon ./bin/www"
  },

经过此步骤后,查看是否能启动这个服务器

javascript 复制代码
// 启动命令/控制台启动
nodemon

安装mongoose步骤

进入mongoose官网:Mongoose.js中文网

安装mongoose

javascript 复制代码
npm i mongoose -S

在mongoose.com中将以下代码放在app.js中

javascript 复制代码
// app.js文件
var express = require("express");
var path = require("path");

..........
..........

var cors = require("cors");
// 在此处引入
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/数据库集合名');

var indexRouter = require("./routes/index");
var usersRouter = require("./routes/users");

var app = express();
app.use(cors());

.........
.........

module.exports = app;

在routes/index.js文件中创建集合配置字段类型

javascript 复制代码
..........

const mongoose = require("mongoose");
const Product = mongoose.model("Product", { name: String, price: Number });

// 使用这行命令添加几条数据/记得注释掉(不然会一直添加 )
Product.create({
    name:'板子',
    price:123
})

下面进行功能测试,增删改查

添加数据
javascript 复制代码
// 添加
router.post("/", async function (req, res, next) {
  const product = new Product(req.body);
  const result = await product.save();
  res.json({
    code: 200,
    message: "success",
    data: result,
  });
});
搜索查询分页
javascript 复制代码
// 搜素,排序,分页
router.get("/", async function (req, res, next) {
  const page = req.query.page || 1;
  const limit = req.query.limit || 2;
  const skip = (page - 1) * limit;
  const searchName = req.query.name || "";
  const products = await Product.find()
    .where({ name: searchName })
    .skip(skip)
    .limit(limit)
    .sort({ price: 1 });
  res.json({
    code: 200,
    message: "success",
    data: products,
  });
});
修改数据
javascript 复制代码
// 修改
router.post("/:id", async function (req, res, next) {
  const id = req.params.id;
  await Product.updateOne({ _id: id }, req.body);
  res.json({
    code: 200,
    message: "success",
  });
});
删除数据
javascript 复制代码
// 删除
router.delete("/:id", async function (req, res, next) {
  const id = req.params.id;
  const result = await Product.findOneAndDelete({ _id: id });
  res.json({
    code: 200,
    message: "del success",
  });
});
相关推荐
烂蜻蜓3 天前
Node.js入门教程(三十一):Express 框架
node.js·express
__zRainy__3 天前
Node.js Web 框架选型指南:从 Express 到 Hono 的全景对比
前端·node.js·express·koa·nestjs·egg·fastify
meilindehuzi_a3 天前
Express 基础到中间件:系统掌握常用 API 与请求处理链
中间件·express
liangshanbo121515 天前
Express SSE 流式输出实战:从入门 Demo 到 AI 生产级架构
人工智能·架构·express
GISHUB16 天前
Express + TypeScript + ESM 后端框架示例(@yao-pkg/pkg 打包)
typescript·express
万亿少女的梦16819 天前
基于微信小程序、Express与MongoDB的校园失物招领系统设计
mongodb·微信小程序·node.js·express·系统设计
米码收割机22 天前
SA508-3钢回火焊道焊接温度场数值模拟(模拟图+论文)
spring boot·express·宠物
Pu_Nine_923 天前
Vue3+TS+Express 转 Nuxt4 全栈开发笔记(Drizzle ORM + MySQL)
前端·vue·express·nuxt.js·全栈框架
张人玉1 个月前
基于 Vue 3 + ECharts + Express + SQLite 构—— LDA 模型的新闻舆论主题识别与情感分析系统
vue.js·echarts·express
张人玉1 个月前
基于 Vue 3 + ECharts + Express + SQLite 的可视化大屏与业务管理系统——YOLOv8 高精度车辆行人检测与计数系统
数据库·vue.js·yolo·sqlite·echarts·express