Express框架与Mongodb的结合使用

这篇具有很好参考价值的文章主要介绍了Express框架与Mongodb的结合使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

如果你打开这篇文章,说明已经开始有做项目的打算了。

这里有express和mongodb的相关参考教程,遇到问题可以在里面找到答案:
Express框架从入门到如土
一文入门Mongodb
这里说下为什么要express框架和mongodb结合。express框架不是指单纯的引入express,而是结合express-generator工具来创建express框架。在前后端未分离的时候,我们还可以使用一些轻量级的数据库如lowdb,但是目前的开发大部分都是前后端分离,用js写后端,用的多的且规范的就是express+mongodb这一套技术栈。所以本文针对这套技术栈进行讲解。

最后就是,本文并不是手把手讲解,只是记录关键步骤。如果有问题可以在上面两篇文章中找答案。

连接数据库

首先导入连接数据库文件:

module.exports = function (success, error) {
    // 导入
    const mongoose = require('mongoose');

    // 连接服务
    mongoose.connect('mongodb://127.0.0.1:27017/test');

    //设置回调
    mongoose.connection.once('open', () => {
        success()
    });

    //设置连接错误的回调
    mongoose.connection.on('error', () => {
        error()
    })

    // 设置连接关闭的回调
    mongoose.connection.on('close', () => {
        console.log('连接关闭')
    })
}

接着在入口文件www中引入

#!/usr/bin/env node

/**
 * Module dependencies.
 */
const db = require('../db/db')
db(() => {
  var app = require('../app');
  var debug = require('debug')('serve:server');
  var http = require('http');

  /**
   * Get port from environment and store in Express.
   */

  var port = normalizePort(process.env.PORT || '3000');
  app.set('port', port);

  /**
   * Create HTTP server.
   */

  var server = http.createServer(app);

  /**
   * Listen on provided port, on all network interfaces.
   */

  server.listen(port);
  server.on('error', onError);
  server.on('listening', onListening);

  /**
   * Normalize a port into a number, string, or false.
   */

  function normalizePort(val) {
    var port = parseInt(val, 10);

    if (isNaN(port)) {
      // named pipe
      return val;
    }

    if (port >= 0) {
      // port number
      return port;
    }

    return false;
  }

  /**
   * Event listener for HTTP server "error" event.
   */

  function onError(error) {
    if (error.syscall !== 'listen') {
      throw error;
    }

    var bind = typeof port === 'string'
      ? 'Pipe ' + port
      : 'Port ' + port;

    // handle specific listen errors with friendly messages
    switch (error.code) {
      case 'EACCES':
        console.error(bind + ' requires elevated privileges');
        process.exit(1);
        break;
      case 'EADDRINUSE':
        console.error(bind + ' is already in use');
        process.exit(1);
        break;
      default:
        throw error;
    }
  }

  /**
   * Event listener for HTTP server "listening" event.
   */

  function onListening() {
    var addr = server.address();
    var bind = typeof addr === 'string'
      ? 'pipe ' + addr
      : 'port ' + addr.port;
    debug('Listening on ' + bind);
  }

})

解释一下,传进去的是一个success函数。

到这一步,数据库已经成功连接。

准备模型文件

//导入mongoose
const mongoose = require('mongoose')

let FoodSchema = new mongoose.Schema({
    food: String,
    hot: Number
})

//创建模型对象
let FoodModel = mongoose.model('food', FoodSchema);

module.exports = FoodModel

操作数据库

以读取文档为例操作数据库:

我提前写好了一部分的数据,如下表格:
Express框架与Mongodb的结合使用
接着我在接口中读取数据:

//数据库读取数据库
router.get('/foods', (req, res) => {
  FoodModel.find().then(data => {
    //设置请求头防止跨域
    res.setHeader("Access-Control-Allow-Origin", '*')
    res.send(data)
  }, err => {
    console.log(err)
  })
})

现在我用postman来测试接口已经能够成功获取到了:
Express框架与Mongodb的结合使用
当然也可使用axios来测试:(如果不成功要注意端口号)

    <button class="btn">获取数据</button>
    <script>
        var btn = document.querySelector('.btn');
        btn.addEventListener('click', () => {
            axios({
                methods: "GET",
                url: 'http://127.0.0.1:3000/foods',
            }).then(res => {
                console.log(res)
            }, err => {
                console.log(err)
            })
        })

Express框架与Mongodb的结合使用
其余对数据库的操作可以根据需求,应用该文章中的方法:
一文入门Mongodb

后记

以上就是Express框架与Mongodb的结合使用方法,后续与这方面相关的文章还会继续更新,欢迎关注!文章来源地址https://www.toymoban.com/news/detail-497906.html

到了这里,关于Express框架与Mongodb的结合使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

    本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署MongoDB,并结合cpolar内网穿透工具实现公网远程访问本地数据库。 MongoDB服务端可以运行在Linux、Windows、MacOS平台,可以存储比较复杂的数据类型,支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分

    2024年03月26日
    浏览(57)
  • 如何使用Docker部署MongoDB并结合内网穿透实现远程访问本地数据库

    正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能 学习网站, 通俗易懂,风趣幽默 ,忍不住分享一下给大家。 点击跳转到网站。 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署MongoDB,并结合cpolar内网穿透工具实现公网远程访问本地数据库。 MongoDB服务

    2024年02月22日
    浏览(94)
  • 如何结合antd design pro 5 结合express 上传多个文件

    在Ant Design Pro 5(基于React)的前端界面结合Express后端实现上传整个文件夹的文件,实际上是在前端进行多文件选择,并通过POST请求将文件列表发送到后端,然后由后端处理上传。由于浏览器API限制,直接上传整个文件夹并不支持,但用户可以选择文件夹内的所有文件进行上

    2024年01月21日
    浏览(51)
  • 关系型非关系型数据库区别,以MongoDB为例在express中连接MongoDB示例

    目录 关系型数据库 关系型数据库常见的类型有: 关系型数据库的优点包括: 非关系型数据库 非关系型数据库常见的类型有: 非关系型数据库的特点包括: 关系型数据库和非关系型数据库区别 MongoDB是什么 MongoDB优势: 在Express中连接MongoDB步骤 Schema 关系型数据库是以关系模

    2024年01月16日
    浏览(77)
  • node基于express+mongodb项目的整体结构搭建和逻辑抽离

    这是我用express实现的一个缩减版的注册功能,如下: app.js 目录结构如下: 可以看到的是所有的逻辑,创建服务器、链接数据库、创建集合、注册都在app.js文件中,这只是一个简单的注册功能,可能看上去还不是很乱,但是当我们后面项目越来越大,所做的功能越来越多,显

    2024年02月16日
    浏览(35)
  • 【自制C++深度学习框架】前言

    此GitHub项目是一个初学者的深度学习框架,使用C++编写,旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能: 计算图:使用计算图来描述深度学习模型的计算过程,利用计算图将神经网络的计算过程视为一个有向无环图。通过构建计算

    2024年02月07日
    浏览(43)
  • 如果unity双击无法打开怎么办

    如果unity引擎双击运行之后,首先你的鼠标光标会出现转圈圈,等待一会儿之后,发现圈圈消失,之后没有给出任何提示。 打开任务管理器,看看unity程序是否在后台运行,然后发现,出现一个叫做unitycrashhandler64的进程。 我之前遇到这个问题也很懵,然后去查阅一下发现很多

    2023年04月09日
    浏览(78)
  • node笔记_express结合formidable实现前后端的文件上传

    大家好,我是yma16,本期分享node

    2024年02月05日
    浏览(42)
  • 前端Vue Node.js + Express + MongoDB 构建的后端服务API接口

    构建一个使用 Vue.js 作为前端, Node.js + Express + MongoDB 作为后端服务的全栈应用涉及到多个步骤。这里简要概述整个过程,并提供一些基本的代码示例来帮助你开始。 安装 MongoDB: 根据你的操作系统从 MongoDB 官网 下载并安装 MongoDB。 启动 MongoDB 服务: 安装完成后,根据 MongoDB 的

    2024年04月14日
    浏览(55)
  • MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(2)-Swagger框架集成

    Swagger是一个规范且完整API文档管理框架,可以用于生成、描述和调用可视化的RESTful风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确

    2024年02月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包