NodeJs Express框架操作MongoDB数据库执行方法讲解

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,非常适合编写高效的、可伸缩性的网络应用程序。Express.js是一个流行的轻量级web应用程序框架,可以快速而方便地构建复杂的Web应用程序。MongoDB是一种NoSQL数据库,经常与Node.js同时使用。

本文将介绍如何使用Node.js和Express.js来连接MongoDB数据库并执行常用操作方法。

准备工作

在开始之前,需要安装以下软件:
- Node.js
- MongoDB
- 一个文本编辑器(如 Visual Studio Code)

打开终端并输入以下命令以创建一个新的Node.js项目:

mkdir myapp
cd myapp
npm init
npm install express mongodb --save

运行上述命令后,会创建一个名为“myapp”的新目录,并生成一个“package.json”文件。该文件用于管理应用程序所使用的npm模块。我们使用npm安装 Express.js 和 MongoDB模块,并将它们保存到“dependencies”字段中。

在将Express.js 和MongoDB模块添加到项目中后,我们需要创建一个名为“app.js”的文件,该文件是我们将使用的代码文件。

连接MongoDB数据库

在app.js中,我们需要编写代码来连接MongoDB数据库。以下是连接MongoDB数据库的示例代码:

const express = require('express');
const { MongoClient } = require('mongodb');

const app = express();
const port = 3000;

//连接数据库
MongoClient.connect('mongodb://localhost:27017', { useUnifiedTopology: true }, (err, client) => {
    if (err) throw err;
    console.log('Database connected successfully');
    const db = client.db('test');
});

app.listen(port, () => {
    console.log(`Server listening at http://localhost:${port}`);
});

在上面的代码中,我们首先导入“express”和“MongoDB”模块。接下来,我们创建一个名为“app”的Express应用实例,并使用端口号“3000”创建一个服务器实例。

然后,我们使用“MongoClient.connect”方法连接MongoDB数据库,并将连接字符串设置为“mongodb://localhost:27017”,其中“localhost”表示 MongoDB 服务器所在的主机名,而“27017”则是 MongoDB 默认端口。我们还设置“useUnifiedTopology”为true来处理最新的MongoDB驱动程序更改。接着,我们需要在回调函数中确认连接是否成功,确认后打印一条消息并将返回的客户端对象上下文保存到变量“db”中。

在完成连接MongoDB数据库后,我们可以通过使用“db.collection”方法来执行以下操作:

插入文档

以下是如何使用Express.js的路由器将文档插入MongoDB数据库的示例代码:

const express = require('express');
const { MongoClient } = require('mongodb');

const app = express();
const port = 3000;

// 连接数据库
MongoClient.connect('mongodb://localhost:27017', { useUnifiedTopology: true }, (err, client) => {
  if (err) throw err;
  console.log('Database connected successfully');
  const db = client.db('test');

  // 插入文档
  app.get('/insert', (req, res) => {
    const user = {
      name: 'Sarah',
      age: 28
    };

    db.collection('users').insertOne(user, (err, result) => {
      if (err) throw err;
      console.log(result);
      res.send('User added to database');
    });
  });
});

app.listen(port, () => {
  console.log(`Server listening at http://localhost:${port}`);
});

在上述代码中,我们使用Express.js的路由器来创建一个名为“/insert”的GET路由。当用户访问此路由时,我们创建一个名为“user”的新对象,并将其插入到名为“users”的MongoDB集合中。在成功插入文档后,我们返回一条消息,并将此消息发送回客户端。

查询文档

以下是如何使用Express.js的路由器查询MongoDB数据库中的文档的示例代码:

const express = require('express');
const { MongoClient } = require('mongodb');

const app = express();
const port = 3000;

// 连接数据库
MongoClient.connect('mongodb://localhost:27017', { useUnifiedTopology: true }, (err, client) => {
  if (err) throw err;
  console.log('Database connected successfully');
  const db = client.db('test');

  // 查询文档
  app.get('/find', (req, res) => {
    db.collection('users').find({}).toArray((err, result) => {
      if (err) throw err;
      console.log(result);
      res.send(result);
    });
  });
});

app.listen(port, () => {
  console.log(`Server listening at http://localhost:${port}`);
});

在上述代码中,我们使用Express.js的路由器来创建一个名为“/find”的GET路由。当用户访问此路由时,我们使用“db.collection.find”方法查询名为“users”的MongoDB集合中的所有文档(空对象{}表示返回所有文档)。在成功查询文档后,我们将结果作为消息的正文发送到客户端。

通过上面的示例代码,我们可以看到如何使用Node.js和Express.js来连接MongoDB数据库并执行常用操作。我们可以根据需要对代码进行修改以适应自己的项目需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NodeJs Express框架操作MongoDB数据库执行方法讲解 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • swoole+websocket+redis实现一对一聊天

    如同web端的QQ和微信一样,这是一个web端的聊天程序。 环境:linux(centos) + php7.2 + swoole扩展 + redis + mysql Redis 实现每个连接websocket的服务都唯一绑定一个用户。通过 用户账号 = websocket fd 存到redis中。 Mysql 实现离线消息池。如果一个用户不在线,则其他用户发…

    Redis 2023年4月11日
    00
  • 数据库系统和数据仓库的区别

    数据库系统(Database System)指的是包含了数据存储、管理和查询等功能的信息系统,由数据库和数据库管理系统(DBMS)组成,是存储、管理和维护数据的关键技术,用于解决数据管理中的问题。而数据仓库(Data Warehouse)则是一种特殊类型的数据库,用于支持企业级业务分析和决策。 下面分别从数据模型、数据源、查询方式和数据分析四个方面分析数据库…

    database 2023年3月27日
    00
  • CentOS6.2上安装Oracle10g报ins_emdb.mk错误处理方法

    下面是详细的攻略: 问题描述: 在CentOS6.2上安装Oracle10g时,可能会遇到以下报错: ins_emdb.mk:20: *** missing separator. Stop. 这是由于Oracle安装程序在生成ins_emdb.mk文件时出现了错误,导致编译时出现问题。下面是解决方法。 解决方法: 步骤如下: 安装依赖 在安装Oracle之前…

    database 2023年5月22日
    00
  • Centos 7.9安装MySQL8.0.32的详细教程

    下面是CentOS 7.9安装MySQL 8.0.32的详细教程: 确认系统版本和组件 确认系统版本 在终端输入以下命令,查看系统版本: cat /etc/redhat-release 注意:安装MySQL 8.0.32需要CentOS 7.6及以上版本。 确认是否安装了MariaDB 在终端输入以下命令,查看是否安装了MariaDB: rpm -qa | …

    database 2023年5月22日
    00
  • MySQL 之 索引原理与慢查询优化

    1. 索引介绍 需求:   一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。 索引:    简单的说,相当于图书的目录,可以帮助用户快速的找到需要的内容.    在MySQL中也…

    MySQL 2023年4月13日
    00
  • Golang Redigo连接Redis 简单使用

    func newPool(host string, db int) *redis.Pool { return &redis.Pool { MaxIdle: 50, MaxActive: 100, Dial: func() (redis.Conn, error) { options := redis.DialDatabase(db) c, err :=…

    Redis 2023年4月13日
    00
  • win2008 r2 安装sql server 2005/2008 无法连接服务器解决方法

    如何解决win2008 r2安装SQL server 2005/2008无法连接服务器的问题?以下是详细攻略: 问题描述 安装SQL server 2005/2008时,有时会出现无法连接服务器的情况,这可能是因为Windows Server 2008 R2防火墙的设置问题导致的。 解决方法 方法一:关闭防火墙 在安装SQL server 2005/2008…

    database 2023年5月21日
    00
  • 在Redhat9上安装Oracle 9.2

    下面是详细的Redhat9上安装Oracle 9.2的攻略: 准备工作 系统需求 Red Hat Linux Advanced Server 2.1, 3.0,或 Red Hat Enterprise Linux AS 3.0 具备 256MB 的内存,并保留 384MB 的虚拟内存空间 必须拥有 root 权限 软件需求 Oracle 9.2 安装程序 R…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部