使用Nodejs + express连接数据库mongodb

在这里插入图片描述

文章目录

  • 先创建一个js文档
  • 安装 MongoDB 驱动程序:
  • 引入 MongoDB 模块:
  • 设置数据库连接:
  • 新建一个表试试
  • 执行数据库操作:
  • 关闭数据库连接:


前面需要准备的内容可看前面的文章:
Express框架搭建项目 node.js
简单用Nodejs + express 编写接口

连接 MongoDB 数据库需要使用 Node.js 的 MongoDB 驱动程序。在 Express 应用程序中使用 MongoDB 驱动程序时,需要执行以下步骤

先创建一个js文档

db.js文档
在这里插入图片描述

安装 MongoDB 驱动程序:

在你的项目目录下使用 npm 或 yarn 安装 MongoDB 驱动程序。

npm install mongodb

在这里插入图片描述

引入 MongoDB 模块:

在 Express 应用程序的文件中引入 MongoDB 模块。

const mongodb = require('mongodb');

在这里插入图片描述

设置数据库连接:

创建一个 MongoDB 客户端,并通过客户端连接到 MongoDB 数据库。

const mongoose = require('mongodb');// MongoDB 连接字符串,包括数据库地址和名称
mongoose.connect('mongodb://localhost:27017/mydatabase').then(() => {console.log('Connected to the database');}).catch((err) => {console.error('Failed to connect to the database:', err);});

在这里插入图片描述

在上面的代码中,uri 变量包含了 MongoDB 数据库的连接字符串,其中包括数据库地址和名称。然后,创建一个新的 mongoose 实例,并通过 connect() 方法连接到数据库。在连接成功后,可以执行数据库操作,例如查询、插入、更新或删除文档。

新建一个表试试

const userValue =new mongoose.Schema({name: String,age: Number,email: String,password: String,phone: String,address: String,gender: String,dob: Date,createdAt: { type: Date, default: Date.now },updatedAt: { type: Date, default: Date.now }
});const User = mongoose.model('User', userValue);

在上面的代码中,先声明一个表的格式。使用new mongooseSchema函数,内容为需要保存的字段。
在这里插入图片描述
再使用module.exports将表传出去:

const mongoose = require('mongodb');// MongoDB 连接字符串,包括数据库地址和名称
mongoose.connect('mongodb://localhost:27017/mydatabase').then(() => {console.log('Connected to the database');}).catch((err) => {console.error('Failed to connect to the database:', err);});const userValue =new mongoose.Schema({name: String,age: Number,email: String,password: String,phone: String,address: String,gender: String,dob: Date,createdAt: { type: Date, default: Date.now },updatedAt: { type: Date, default: Date.now }
});const User = mongoose.model('User', userValue);module.exports = { User };

在这里插入图片描述

再使用index页面接收一下:

const { User }= require('./db');

在这里插入图片描述

执行数据库操作:

在连接成功后,可以在回调函数中执行数据库操作。

// 在连接成功后执行数据库操作
client.connect(err => {if (err) {console.error('Failed to connect to the database:', err);return;}console.log('Connected successfully to the database');const db = client.db();// 查询所有文档db.collection('mycollection').find().toArray((err, docs) => {if (err) {console.error('Error fetching documents:', err);return;}console.log('Documents:', docs);});// 插入文档db.collection('mycollection').insertOne({ name: 'John', age: 30 }, (err, result) => {if (err) {console.error('Error inserting document:', err);return;}console.log('Document inserted:', result.insertedId);});// 更新文档db.collection('mycollection').updateOne({ name: 'John' }, { $set: { age: 35 } }, (err, result) => {if (err) {console.error('Error updating document:', err);return;}console.log('Document updated:', result.modifiedCount);});// 删除文档db.collection('mycollection').deleteOne({ name: 'John' }, (err, result) => {if (err) {console.error('Error deleting document:', err);return;}console.log('Document deleted:', result.deletedCount);});
});

在上面的代码中,db.collection() 方法用于获取集合对象,然后可以使用该集合对象执行查询、插入、更新或删除操作。

关闭数据库连接:

在完成数据库操作后,记得关闭数据库连接,释放资源。

// 关闭数据库连接
client.close();

这样,你的 Express 应用程序就可以连接到 MongoDB 数据库并执行数据库操作了。记得根据你的实际需求修改连接字符串和数据库操作。

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

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

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

相关文章

轻松上手Jackjson(珍藏版)

写在前面 虽然现在市面上有很多优秀的json解析库,但 Spring默认采用Jackson解析Json。 本文将通过一系列通俗易懂的代码示例,带你逐步掌握 Jackson 的基础用法、进阶技巧以及在实际项目中的应用场景。 一、Jackjson简介 Jackson 是当前用的比较广泛的&a…

idea开发 java web 疫情信息查询系统bootstrap框架web结构java编程计算机网页接口查询

一、源码特点 java 疫情信息查询系统是一套完善的完整信息系统,结合java web开发和bootstrap UI框架完成本系统 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术 css j…

AcWing 2069. 网络分析 (并查集,树上差分)

小明正在做一个网络实验。 他设置了 n n n 台电脑,称为节点,用于收发和存储数据。 初始时,所有节点都是独立的,不存在任何连接。 小明可以通过网线将两个节点连接起来,连接后两个节点就可以互相通信了。 两个节点…

为雪域高原乡村振兴发挥保险作用——中国平安在西藏那曲比如县开展“牦牛险”的背后

牦牛对于西藏的农牧民来说,无疑是重要的生产资料和生活资料,然而,俗语有言,“家财万贯,带毛的不算”,一旦疫病或天灾来袭,农牧民几乎没有抵抗之力,受到的打击也堪称毁灭性。如何破解…

The Closest Pair Problem

Problem Let S be a set of n points ((xi,yi), 1≤i≤n) in the plane, finding a pair of points p and q in S whose mutual distance is minimum. Algorithm 1: Θ ( n 2 ) The brute-force algorithm simply examines all the possible n(n−1)/2 distances and returns t…

蓝桥杯竞赛经典题型模板

十进制转R进制 #include<iostream> #include<string> #include<algorithm> using namespace std;string tentoR(int x, int r) {if (x 0) return "0"; // 如果x为0&#xff0c;直接返回"0"string s;while (x) {int num x % r;if (num…

CentOS部署Apache Superset大数据可视化BI分析工具并实现无公网IP远程访问

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透&#xff0c;实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

react native 相机拍照

安装插件 npm install react-native-image-picker // 引入import { launchCamera, launchImageLibrary} from react-native-image-picker; 代码如下 <Button title"点击启动相机" onPress{() > takePhoto()}></Button> <Button title"点击启…

模具行业项目管理系统哪家好?模具项目管理系统找企智汇!

模具行业是一个对项目管理要求非常高的领域&#xff0c;涉及到复杂的制造流程、精细的工艺要求以及紧密的供应链协作。因此&#xff0c;选择一款适合模具行业的项目管理系统至关重要。 企智汇作为一款专注于企业数字一体化项目管理的软件&#xff0c;为模具行业提供了全面的项…

解决Xshell连接不上虚拟机

相信有很多同学和我一样遇到这个问题&#xff0c;在网上看了很多教程基本上都先让在虚拟机输入ifconfig命令查看ip地址&#xff0c;弄来弄去最后还是解决不了&#x1f62d;&#x1f62d;&#xff0c;其实问题根本就不在命令上&#xff0c;很大概率是我们的虚拟机没有开启网卡&a…

CSS实现热门创作者排行榜(毛玻璃效果)

CSS实现热门创作者排行榜&#xff08;毛玻璃效果&#xff09; 效果展示 CSS 知识点 CSS 基础知识回顾filter 属性运用回顾 整体页面布局实现 <div class"container"><h3>Popular Creator Rank List</h3><!-- 用户列表容器 --><div cl…

【剪映专业版】02软件快捷键

视频课程&#xff1a;有知公开课【剪映电脑版教程】 快捷键 苹果电脑选择Final Cut Pro X Windows电脑选择Premiere Pro 常用快捷键 更改快捷键

刷题之动态规划-子序列

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;开始刷动态规划的子序列类型相关的题目&#xff0c;子序列元素的相对位置和原序列的相对位置是一样的 动态规划5个步骤 状态表示 &#xff1a;dp数组中每一个下标对应值的含义是什么>dp[i]表示什么状态转移方程&#xf…

RuoYi-Cloud下载与运行

一、源码下载 若依官网:RuoYi 若依官方网站 鼠标放到"源码地址"上,点击"RuoYi-Cloud 微服务版"。 跳转至Gitee页面,点击"克隆/下载",复制HTTPS链接即可。 源码地址为:https://gitee.com/y_project/RuoYi-Cloud.git 点击复制 打开IDEA,选…

千万不要错过这6款能让你快速写作成长的宝藏软件…… #学习方法#AI写作

国外ChatGPT爆火&#xff0c;AI写作在国内也引起不小的瞩目&#xff0c;目前国内的AI写作工具少说也有几十上百个&#xff0c;要在这么多AI写作中找出适合自己的工具&#xff0c;一个一个尝试是不太现实的&#xff0c;所以今天就给大家推荐一些款AI写作工具。帮助你少走弯路&am…

开源AI程序员SWE-Agent的实现方法

1 引子 前几天&#xff0c;AI 编程机器人 Devin 引起了热议。传言称&#xff1a;程序员的饭碗就要丢了。这两天&#xff0c;一个类似功能的产品 SWE-Agent 开源&#xff0c;在 SWE-Bench 上实现了与 Devin 类似的效果。下面让我们来看看 AI 程序员的具体实现方法。 2 信息 地…

unicloud中文字段排序bug

db.collection(ledy-db).field( "序号,客户名称,期初余款,折扣,收款日期,收款金额,赠送金额,备注1,订单日期,订单金额,备注2,备注3,余款,老师).orderBy(客户名称).get()中文字段排序查不出数据 然后只能用使用原生云函数的sort方法来排序 云数据库聚合操作aggregate | u…

抖音电商罗盘品牌人群运营策略指南

【干货资料持续更新&#xff0c;以防走丢】 抖音电商罗盘品牌人群运营策略指南 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 抖音运营资料合集&#xff08;完整资料包含以下内容&#xff09; 目录 品牌人群运营策略&#xff0c;旨在帮助品牌通过精细化运营提…

深入理解MySQL中的utf8、utf8mb4和排序规则

在MySQL中,字符集和排序规则是两个非常重要的概念,它们决定了数据库如何存储和比较字符串数据。今天我们来探讨一下MySQL中几种常用的字符集和排序规则之间的区别和适用场景。 utf8和utf8mb4 utf8和utf8mb4都是MySQL中用于存储Unicode字符的字符集编码。但是它们有一个重要区…

sql 之 索引

索引是对数据库表中一列或多列的值进行排序的一种结构&#xff0c;使用索引可快速访问数据库表中的特定信息。 1. 什么是索引 官方上面说索引是帮助MySQL高效获取数据的数据结构&#xff0c;通俗点来说&#xff0c;数据库索引就像是是一本书的目录&#xff0c;可以直接根据页码…