MERN堆栈

2023-11-01

【转自GeeksforGeeks的@Jasraj《MERN Stack》翻译】

MERN堆栈: MERN堆栈 是一个 Javascript 堆栈,用于更轻松、更快速地部署全栈Web应用程序。MERN堆栈包含 4 项技术,即:MongoDBExpressReactNode.js。它旨在使开发过程更加顺畅和轻松。

这 4 种强大的技术中的每一种都为开发人员提供了一个端到端的框架,并且这些技术中的每一种都在 Web 应用程序的开发中发挥着重要作用。

入门:首先,创建一个新的项目文件夹。然后转到命令提示符/终端中的项目文件夹并键入以下命令以初始化 package.json 文件。(确保安装了 npm)

npm init

一个普通的 package.json 文件如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMi2Rt76-1626831804268)(https://media.geeksforgeeks.org/wp-content/uploads/20191004123937/3610.png)]

注意: 根据您的要求,您可以安装将显示在 package.json 文件中的模块(通过键入npm install module_name –save)。

了解 MERN Stack 组件:

1. MongoDB:跨平台的面向文档的数据库

MongoDB 是一个 NoSQL 数据库,其中每条记录都是一个由类似于 JSON(JavaScript Object Notation)对象的键值对组成的文档。MongoDB 非常灵活,允许其用户创建模式、数据库、表等。可通过主键识别的文档构成了 MongoDB 的基本单元。一旦安装了 MongoDB,用户也可以使用 Mongo shell。Mongo shell 提供了一个 JavaScript 接口,用户可以通过它进行交互和操作(例如:查询、更新记录、删除记录)。

为什么要使用 MongoDB?

  • 快速——作为面向文档的数据库,易于索引文档。因此反应更快。

  • 可扩展性——大数据可以通过将其分成几台机器来处理。

  • 使用 JavaScript—— MongoDB 使用 JavaScript,这是最大的优势。

  • Schema Less——单独文档中的任何类型的数据。

  • 以 JSON 形式存储的数据——

    1. 对象、对象成员、数组、值和字符串
    2. JSON 语法非常易于使用。
    3. JSON 具有广泛的浏览器兼容性。
    4. 共享数据:可以轻松共享任何大小和类型(视频、音频)的数据。
  • 简单的环境设置——设置 MongoDB 真的很简单。

  • 灵活的文档模型——MongoDB 支持文档模型(表、模式、列和 SQL),它更快更容易。

  • 创建数据库:只需使用“use”命令即可完成:

      use database_name;
    
  • 创建表:如果集合/表不存在,则将创建一个新的集合/表:

      db.createCollection("collection_name");
    
  • 将记录插入到集合中:

      db.collection_name.insert
      (
          {
              "id" : 1,
              "Name" : "Klaus",
                      "Department": "Technical",
                      "Organization": "Geeks For Geeks"
          }
      );
    
  • **查询文档: **

      db.collection_name.find({Name : "Klaus"}).forEach(printjson);
    

2. Express:后端框架:

Express 是一个 Node.js 框架。Express 不是使用 Node.js 编写代码并创建大量 Node 模块,而是让编写后端代码更简单、更容易。Express 有助于设计出色的 Web 应用程序和 API。Express 支持许多中间件,这使得代码更短且更易于编写。

为什么要使用Express?

  • 异步和单线程。

  • 高效、快速且可扩展

  • 拥有最大的 Node.js 社区

  • Express 通过其内置路由器提高了代码的可重用性。

  • 强大的 API

  • 创建一个新文件夹以启动您的 express 项目,并在命令提示符下键入以下命令以初始化 package.json 文件。接受默认设置并继续。

      npm init
    
  • 然后通过键入以下命令并按 Enter 来安装 express。现在最后在名为 index.js 的目录中创建一个文件。

      npm install express --save
    

  • 现在在 index.js 中输入以下内容以创建示例服务器。

      const express = require('express'),
      http = require('http');
      
      const hostname = 'localhost';
      const port = 8080;
      const app = express();
      
      app.use((req, res) => {
      console.log(req.headers);
      res.statusCode = 200;
      res.setHeader('Content-Type', 'text/html');
      res.end('<html><body><h1>This is a test server</h1></body></html>');
      
      });
      const sample_server = http.createServer(app);
      
      sample_server.listen(port, hostname, () => {
      console.log(`Server running at http://${hostname}:${port}/`);
      });
    
  • 更新 package.json 文件中的“脚本”部分
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XidBy3g3-1626831804275)(https://media.geeksforgeeks.org/wp-content/uploads/20191001190303/Screenshot-4117.png)]

  • 然后通过运行以下命令来启动服务器

      npm start
    

  • 现在您可以打开浏览器并获取正在运行的服务器的输出。

3.React:前端库

React 是一个用于构建用户界面的 JavaScript 库。React 用于开发单页应用程序和移动应用程序,因为它能够处理快速变化的数据。React 允许用户使用 JavaScript 编写代码并创建 UI 组件。

为什么要使用 React?

  • 虚拟 DOM ——虚拟 DOM 对象是 DOM 对象的表示。虚拟 DOM 实际上是原始 DOM 的副本。Web 应用程序中的任何修改都会导致整个 UI 重新渲染虚拟 DOM。然后比较原始DOM和这个虚拟DOM之间的差异,并根据原始DOM进行相应的更改。

  • JSX –— 代表 JavaScript XML。它是一个在 React 中使用的 HTML/XML JavaScript 扩展。使编写 React 组件变得更加容易和简单。

  • 组件 ——ReactJS 支持组件。组件是 UI 的构建块,其中每个组件都有一个逻辑并有助于整个 UI。这些组件还提高了代码的可重用性并使整个 Web 应用程序更易于理解。

  • 高性能 —— 虚拟 DOM、JSX 和组件等功能使其比其他框架快得多。

  • 开发 Android/Ios 应用程序 –— 使用 React Native,您只需具备 JavaScript 和 ReactJS 的知识,即可轻松编写基于 Android 或 IOS 的应用程序。

  • 您可以通过首先使用 npm 或 yarn 安装“create-react-app”来启动您的 React 应用程序。

      npm install create-react-app --global
    

    或者

      yarn global add create-react-app
    
  • 此后,您可以用此方式创建一个新的React应用。

      create-react-app app_name
    
  • 然后导航到“app_name”文件夹并键入yarn startnpm start以启动您的应用程序。

  • 一个典型的 React 应用程序如下所示:

  • 更新 index.js 文件

      ReactDOM.render(
          <h1>Hello DEVELOPERS!!</h1>,
          document.getElementById('root')
      );
    

  • 使用以下命令运行您的应用程序。

      npm start
    

    或者

      yarn start
    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uqLWK0hY-1626831804284)(https://media.geeksforgeeks.org/wp-content/uploads/20191001192811/Screenshot-5010.png)]

4.Node.js:JS运行时环境

Node.js 提供了一个 JavaScript 环境,允许用户在服务器上(在浏览器之外)运行他们的代码。节点包管理器即 npm 允许用户从数千个免费包(节点模块)中进行选择下载。

为什么要使用 Node.JS?

  • 开源 JavaScript 运行时环境

  • 单线程——遵循单线程模型。

  • 数据流

  • 快速 —— Node.js 基于 Google Chrome 的 JavaScript 引擎构建,代码执行速度快。

  • 高度可扩展

  • 通过在命令窗口中键入运行以下命令来初始化 Node.js 应用程序。接受标准设置。

      npm init
    
  • 创建一个名为 index.js 的文件。
    示例
    计算矩形周长和面积的基本 Node.js 示例。

      var rectangle = {
          perimeter: (x, y) => (2*(x+y)),
          area: (x, y) => (x*y)
      };
      
      function Rectangle(l, b) {
          console.log("A rectangle with l = " + l + " and b = " + b);
      
          if (l <= 0 || b <= 0) {
              console.log("Error! Rectangle's length & breadth should be greater than 0:  l = "
                  + l + ",  and b = " + b);
          }
          else {
              console.log("Area of the rectangle: " + rectangle.area(l, b));
              console.log("Perimeter of the rectangle: " + rectangle.perimeter(l, b));
          }
      }
      
      Rectangle(1, 8);
      Rectangle(3, 12);
      Rectangle(-6, 3);
    
  • 通过在命令窗口中运行以下命令来运行节点应用程序。

      npm start
    

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MERN堆栈 的相关文章

随机推荐

  • U-boot移植,添加正点原子板子报错:致命错误:configs/.h:没有那个文件或目录

    在创建完成mx6ull alientek emmc deconfig include configs mx6ull alientek emmc h文件以及板级文件夹board freescale mx6ull alientek emmc及文
  • 读书笔记:《把时间当作朋友》

    开头 金句 1 今天的错误将必然导致明天的尴尬 为了避免将来的尴尬必须在今天采取正确的行动 2 我常常这样告诉自己 你并不孤独 当我遇到麻烦的时候 我会这么对自己说 告诉自己遇到这种麻烦的人并不只我一个 所以只要想办法寻找解决方案就好 弄不
  • SAP FI/SD的集成-VKOA科目确定

    前言 一 组成部分 二 使用步骤 1 VKOA确定收入科目 1 1定义物料科目分配组 1 2定义客户科目分配组 2 V 08定价过程 3 库存成本Inventory的自动记账科目配置 OBYC 总结 前言 财务和销售集成的点 也是各种SAP
  • SpringCloud微服务架构的学习理解一

    一 什么是springcloud springCloud是集合了其他的技术 多达21种的技术 集成了为微服务工作的各个组件 二 什么是微服务架构 微服务架构是由马丁 福勒提出的 将单一的应用程序划分为多个模块的进行服务设计的一种架构风格 其
  • Android混合开发的入门和方案

    前言 其实之前一直都很抵制hybrid开发 因为作为一个Android开发程序员 总是觉得原生的更好 其实是不想丢饭碗 但是一个闲着没事干 就写了一个demo搭了个webview 然后把html文件放到asset下面 一加载惊呆宝宝了 简直
  • pcl曲面网格模型的三种显示方式

    https www cnblogs com bozhicheng p 5842747 html
  • 一文讲透产品经理如何用好ChatGPT

    作者 京东零售 何雨航 4 0版本的ChatGPT可以有效提升产品经理工作效率 但并无法替代产品经理的角色 一 引言 3月15日 OpenAI发布了最新的基于GPT 4的ChatGPT 关于其智能性的讨论热度在互联网上空前高涨 我之前体验过
  • 试用虚拟服务器,免费试用的虚拟服务器

    免费试用的虚拟服务器 内容精选 换一换 弹性公网IP是可以直接访问Internet的IP地址 一个弹性公网IP只能给一个裸金属服务器使用 私有IP是公有云内网所使用的IP地址 用于内网通信 私有IP不能访问Internet 虚拟IP也称为
  • 类名称:CPicture

    新建一个基于对话框的工程 给你的对话框中加入一个静态文本控件 Static Text 或者图片控件 Picture Control 利用ClassWizard给控件关联一个变量 类型是 CPictureEx的 如 CPictureEx m
  • 借助国内ChatGPT平替+markmap/Xmind飞速生成思维导图

    系列文章目录 借助国内ChatGPT平替 MindShow 飞速制作PPT 借助国内ChatGPT平替 剪映 百度AIGC平台快速制作短视频 利用ChatGPT编写Excel公式 对比讯飞星火与ChatGPT对Excel公式的回答 文章目录
  • Application.OpenURL不同平台的使用

    using UnityEngine using System Collections public class testjar MonoBehaviour private static readonly int LocalVersion 1
  • 系统设计和机器学习算法

    LAMDA 机器学习书与数据挖掘研究所 算法训练网站 提供了大量可以练习的网站 1 Leetcode 2 Geeksforgeeks 3 Hackerrank 4 Lintcode paddlepaddle 系统设计 关注 系统设计 面向对
  • 测绘专业计算机编程要求,关于一些测绘圈子的信息,你需要了解!

    原标题 关于一些测绘圈子的信息 你需要了解 测绘学发展到今天 已经不再仅仅是简单的测量和制图了 如果你想往上发展 没有这些技能可能会很困难 这个时候 没有两把刷子 你好意思说你在测绘圈混 一 必要的数据基础和测绘学专业基础理论 这是进入测绘
  • 方舟服务器id哪里显示,明日方舟问卷id在哪查看?问卷id查看方法介绍

    明日方舟问卷id怎样填 找到自己的信息 完成奖励兑换 游戏爱好者小编带来方法详情 成功完成庆典活动 感谢庆典问卷数字id查看攻略 首先这个数字ID就在游戏主界面的个人昵称下方 具体位置如下图所示 注意这一串数字都属于数字ID 需要全部填写在
  • JavaScript洗牌函数

    喜欢做笔记 洗牌函数的封装 function getRandom min max return Math floor Math random max min 1 min function shuffle arr 不修改原数组 let arr
  • 公积金提取 -- 小黑日常超详细教程

    公积金说明 是入职以后五险一金中的一金 它的产生是国家给予的福利 国家规定它的缴纳数组成是 工资的6 12 然后按照公司给予福利的6 12 区间值计算 公积金存款 公司缴纳的百分比 x 你的工资 x 2 注 正经公司会根据实际发给你的工资计
  • 背完这444句,你的口语绝对不成问题了

    1 I see 我明白了 2 I quit 我不干了 3 Let go 放手 4 Me too 我也是 5 My god 天哪 6 No way 不行 7 Come on 来吧 赶快 8 Hold on 等一等 9 I agree 我同意
  • 公共数据运营模式研究报告 附下载

    本报告以公共数据运营模式为核心 以释放公共数据价值为目标 深入分析公共数据概念及特征 厘清公共数据运营的内涵及本质 提出纵深分域数据要素市场运营体系的总体思路 构建了一座 一个数据底座 两场 两级市场 三域 三个区域 四链 四个链条 的运营
  • Vue(踩坑)Error in render “TypeError Cannot read properties of undefined (reading ‘length‘)“

    我在网上搜了好久 说是我层级太深了 taskfillist我在vuex中的state中定义的是一个空数组 div 解决办法 在组件mounted过程中 taskfillist声明的空数组 在taskfillist length前面增加tas
  • MERN堆栈

    转自GeeksforGeeks的 Jasraj MERN Stack 翻译 MERN堆栈 MERN堆栈 是一个 Javascript 堆栈 用于更轻松 更快速地部署全栈Web应用程序 MERN堆栈包含 4 项技术 即 MongoDB Exp