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

express是什么?

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

安装Express步骤

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

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

使用express-generator生成express项目

// node-api是项目名称
express --no-view node-api// 使用cd进入创建的项目文件,例如
cd node-api//进入项目文件后初始化项目
npm i

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

// 安装命令
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这个包

npm i nodemon -D

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

 "scripts": {"start": "nodemon ./bin/www"},

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

// 启动命令/控制台启动
nodemon

安装mongoose步骤

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

安装mongoose

npm i mongoose -S

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

// 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文件中创建集合配置字段类型

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

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

添加数据
// 添加
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,});
});

搜索查询分页
// 搜素,排序,分页
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,});
});

修改数据
// 修改
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",});
});

删除数据
// 删除
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",});
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/233145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

棋牌的电脑计时计费管理系统教程,棋牌灯控管理软件操作教程

一、前言 有的棋牌室在计时的时候,需要使用灯控管理,在开始计时的时候打开灯,在结账后关闭灯,也有的不需要用灯控,只用来计时。 下面以 佳易王棋牌计时计费管理系统软件为例说明: 软件试用版下载或技术支…

【PostgreSQL】从零开始:(七)PostgreSQL-Initdb命令初始化数据库

概述 initdb是PostgreSQL初始化数据库的工具,用来生成PostgreSQL的Data目录结构 使用initdb 创建数据库集群时,会自动初始化区域设置支持。 initdb 默认情况下将使用其执行环境的区域设置来初始化数据库集群,因此,如果您的系统已…

LVS+Keepalived集群的介绍和搭建

目录 LVSKeepalived集群的介绍 Keepalived及其工作原理 Keepalived体系主要模块及其作用 一个合格的集群应该具备的特性 健康检查(探针)的方式 实验:搭建LVSKeepalived集群 实验准备 实验步骤 LVS 部署 配置节点服务器 实验验证 实…

【【UART 传输数据实验】】

UART 传输数据实验 通信方式在日常的应用中一般分为串行通信(serial communication)和并行通信(parallel communication)。 我们再来了解下串行通信的特点。串行通信是指数据在一条数据线上,一比特接一比特地按顺序传…

中英购物商城 中英文网店系统怎么选

中英文网店系统能帮助企业将商品卖到不同国家和地区,有效走出国门的工具,在选择中英购物商城时,需要考虑以下几个方面: 1、语言支持:选择一款能够支持中英文双语的购物商城系统是必要的,同时建议选择能确认…

feign返回参数为统一转化

原因:使用feign调用接口,接收的数据结构必须和报文返回的结构一样。返回报文中data是对象,用string接收会报错。 扩充:jackson进行反序列化时,如果类型参数是JavaType,则使用泛型接收时,泛型需…

工大智信智能听诊器:为您提供健康报告的私人健康管家

工大智信智能听诊器:为您提供健康报告的私人健康管家 工大智信智能听诊器在日常健康监测中扮演着重要的角色,它的出现为预防疾病提供了有力的支持。以下是工大智信智能听诊器在监测和预防疾病方面的重要性描述,以及它如何帮助用户及早发现健康…

数据结构--图(更新ing~)

树具有灵活性,并且存在许多不同的树的应用,但是就树本身而言有一定的局限性,树只能表示层次关系,比如父子关系。而其他的比如兄弟关系只能够间接表示。 推广--- 图 图形结构中,数据元素之间的关系是任意的。 一、图…

[PTA]分寝室

学校新建了宿舍楼,共有 n 间寝室。等待分配的学生中,有女生 位、男生 位。所有待分配的学生都必须分到一间寝室。所有的寝室都要分出去,最后不能有寝室留空。 现请你写程序完成寝室的自动分配。分配规则如下: 男女生不能混住&…

如何去掉视频中不想要的水印,分享几个视频去水印技巧给你

如何去掉视频中不想要的水印?视频中的水印往往会遮挡画面,降低观看体验。本文将为您介绍三种方法,帮助您轻松去除视频中的水印,以便更好地欣赏和分享视频内容。 视频去水印技巧一:使用水印云 是一款操作简便、功能强大…

【C语言初阶】数组

目录 一、一维数组的创建和初始化 1.1 数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 二、二维数组的创建和初始化 2.1 二维数组的创建 2.2 二维数组的初始化 2.3 二维数组的使用 2.4 二维数组在内存中的存储 三、数组越界 四、数组作…

智能高效的Go开发工具GoLand v2023.3发布,支持AI辅助编码!

GoLand 使 Go 代码的阅读、编写和更改变得非常容易。即时错误检测和修复建议,通过一步撤消快速安全重构,智能代码完成,死代码检测和文档提示帮助所有 Go 开发人员,从新手到经验丰富的专业人士,创建快速、高效、和可靠的…

图片速览 OOD用于零样本 OOD 检测的 CLIPN:教 CLIP 说不

PAPERCODEhttps://arxiv.org/pdf/2308.12213v2.pdfhttps://github.com/xmed-lab/clipn 文章创新 以往由CLIP驱动的零样本OOD检测方法,只需要ID的类名,受到的关注较少。 本文提出了一种新的方法,即CLIP说“不”(CLIPN)…

nlohmann json:通过json_pointer读取设置object/array

通过json_pointer可以不必一层一层的读取或设置json值,可以直接完成。 其实json类似一个树,可以通过从根节点/开始,指定每一个节点及叶子节点的名字,然后直接访问json数据: #include <iostream> #include <nlohmann/json.hpp> using namespace std; using j…

计算机基础,以及实施运维工程师介绍

目录 一.实施&#xff0c;运维工程师介绍 1.什么是实施工程师&#xff1f; 实施工程师职责 2.什么是运维工程师&#xff1f; 运维工程师职责 3.实施运维需要的技术 数据库 操作系统 网络 服务器 软件 硬件 网络 二.计算机介绍 CPU 存储器 io 总线 主板 三.操…

x3::forward_ast

在 Boost Spirit X3 中&#xff0c;x3::forward_ast 是一个转换器&#xff08;transformer&#xff09;&#xff0c;用于将解析器&#xff08;parser&#xff09;的结果转发给用户自定义的结构。 在 Spirit X3 中&#xff0c;解析器&#xff08;parser&#xff09;可以生成一个…

linux dd命令,快速占用服务器磁盘

dd 是一个在 Linux 系统中用于复制文件和设备的命令。它可以用于创建镜像、备份和恢复数据、磁盘克隆等任务。dd 命令非常强大&#xff0c;但也需要小心使用&#xff0c;因为它可以对磁盘进行直接读写操作&#xff0c;如果使用不当可能导致数据丢失。 下面是一些常见的 dd 命令…

计算机毕业设计—基于Koa+vue的高校宿舍管理系统宿舍可视化系统

项目介绍 项目背景 随着科技的发展&#xff0c;智能化管理越来越重要。大学生在宿舍的时间超过了1/3&#xff0c;因此良好的宿舍管理对学生的生活和学习极为关键。学生宿舍管理系统能够合理安排新生分配宿舍&#xff0c;不浪费公共资源&#xff0c;减轻学校管理压力&#xff…

“image.save(image_path)“和“cv2.imwrite(image_path , image)”的区别

两者是保存图像的两种不同方式&#xff0c;分别适用于不同的图像库。 image.save(image_path)是PIL&#xff08;Python Imaging Library&#xff09;库中用于保存图像的方法。它需要将图像对象&#xff08;Image对象&#xff09;保存到指定的文件路径中。PIL库支持多种图像格式…

SQL中 WITH AS 的使用方法

一&#xff0e;WITH AS的含义 WITH AS短语&#xff0c;也叫做子查询部分&#xff08;subquery factoring&#xff09;&#xff0c;可以定义一个SQL片断&#xff0c;该SQL片断会被整个SQL语句用到。可以使SQL语句的可读性更高&#xff0c;也可以在UNION ALL的不同部分&#xff…