Angular13 如何创建一个模拟后端mockServe

        在前端和后端的同时开发中,从事应用程序的 Angular 开发人员必须能够与虚假后端进行交互,以便通过模拟后端数据来创建 UI。其中我们就会使用 json-server 和 nodemon 的npm 包来帮助我们完成这个过程。

  • json-server 是一个提供完整假 REST API 的包,无需编码,可以毫不费力地进行设置。
  • Nodemon 是一种工具,可在检测到目录中的文件更改时自动重新启动 Node 应用程序,从而帮助开发基于Node.js的应用程序。

下面将简单介绍其步骤:

1. 创建新项目

使用 Angular CLI 工具命令创建一个全新的 Angular 项目:

ng new mock-server

        这将设置一个名为 mock-server 的 Angular 项目,其中包含如下所示package.json。示例中使用的 Angular 版本是 v13,但是它适用于每个版本的 Angular 2+。

2. 安装 npm 包
npm install json-server --save-dev
npm install nodemon --save-dev

        上述命令将最新版本的 json-server 和 nodemon 安装为 dev 依赖项,并将其添加到您的 package.json 文件中。

3. 在 JSON 文件中添加模拟数据

        按服务器名称创建文件夹。名称可以是任何内容,具体取决于您的选择。在服务器文件夹 data/users/json 中创建另一个文件夹结构,并创建一个 getUsers.json 文件,其中包含 JSON 响应形式的模拟用户列表。 创建上述文件夹结构是为了确保在添加多个虚假 API JSON 响应时保持一致性,并且它们可能属于应用中的单独功能模块。文件夹结构是基于功能模块创建的,就像我们在 Angular 应用程序中为功能模块所做的那样。

4. 添加index.js文件

        要导出 server.js 文件中的 JSON 数据,请在 server/data/users 文件夹中创建一个 index.js 文件,该文件将模拟 JSON 响应(用户列表)导出为要在 server.js 文件中使用的模块。module.exports 是一个特殊对象,默认情况下包含在 Node.js 应用程序的每个 JavaScript 文件中。模块是表示当前模块的变量,导出是将作为模块公开的对象。

5. 添加一个 server.js 文件以将所有内容插入在一起

        创建一个 server.js 文件,其中包含使用具有以下配置的Node.js设置 json-server 的配置:

        上述节点服务器在端口号 3000 上运行。它侦听端点 /api/users 上的请求,以返回 http://localhost:3000/api/users 上的用户列表

6. 在 package.json 中添加脚本

        在server.js文件中完成服务器配置后,在package.json中创建一个脚本,如下所示:

"mock:server": "nodemon server/server.js --ext js,ts,json,html"

        在命令行上添加 npm run mock:server,以查看服务器运行,并显示控制台消息“JSON Server running at port 3000”。 上述脚本在监视模式下运行,并侦听对 *.js、*.ts、*.json 和 *.html 类型的文件的任何更改,并自动重新启动节点服务器。

7. 进入浏览器并输入 URL

        瞧!我们的模拟服务器已设置好并准备好进行测试。转到浏览器并点击地址栏中的 http://localhost:3000/api/users。您将能够在浏览器上看到用户列表。

        同样,您可以为 POST、PUT、PATCH 和 DELETE 操作设置模拟端点。

8. 在 Angular 应用程序 UI 上测试它

        在app.module.ts中注入 HttpClientModule,并在app.component.ts中注入 HttpClient 作为依赖注入。 然后,在 ngOnInit()生命周期钩子中,从模拟 API 端点 http://localhost:3000/api/users 获取用户列表,并在控制台中打印数据或将其绑定到 class 属性中以在 UI 中查看。

 

9. 直接上大大的文章链接

https://medium.com/geekculture/setting-up-a-mock-backend-with-angular-13-applications-26a21788f7daicon-default.png?t=N7T8https://medium.com/geekculture/setting-up-a-mock-backend-with-angular-13-applications-26a21788f7da

https://github.com/akashkriplani/mock-servericon-default.png?t=N7T8https://github.com/akashkriplani/mock-server

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何避免vue的url中使用hash符号?

目录 1. 安装 Vue Router 2. 配置 Vue Router 使用 history 模式 3. 更新 main.js 4. 配置服务器以支持 history 模式(此处需要仔细测试) a. Nginx 配置 b. Apache 配置 5. 部署并测试 总结 在 Vue.js 项目中,避免 URL 中出现 # 符号的…

Qt | 简单的使用 QStyle 类(风格也称为样式)

01、前言 者在 pro 文件中已添加了正确的 QT+=widgets 语句 02、基础样式 1、QStyle 类继承自 QObject,该类是一个抽像类。 2、QStyle 类描述了 GUI 的界面外观,Qt 的内置部件使用该类执行几乎所有的绘制,以确保 使这些部件看起来与本地部件完全相同。 3、Qt 内置了一系…

电影时间首页(HTML+css)

使用HTMLcss制作的一个简单的电影时间首页 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>电影时间首页</title></head><body><!--header begin--><div style"height: 63px;">&…

如何将编译过的C++库迅速部署在Visual Studio新项目中

本文介绍在Visual Studio中&#xff0c;通过属性表&#xff0c;使得一个新建解决方案中的项目可以快速配置已有解决方案的项目中各类已编译好的C第三方库的方法。 例如&#xff0c;我们现有一个解决方案&#xff0c;其中的一个项目需要调用Armadillo、OpenCV等多个不同的C第三…

如何用Java SE数组实现高速的数字转换功能

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

jdk17详细安装步骤

本文以Windows系统&#xff0c;JDK17版本作为示例&#xff0c;其他版本的操作步骤类似。 一、下载 进入官网后往下翻&#xff0c;找到JAVA17&#xff0c;然后点击Windows 点击下载。 二、安装 安装 JDK的安装是无脑安装&#xff0c;就是一路下一步下一步。。直到完成。默认安…

怎么提取视频中的音频?别错过这6个音频提取方法了!(全新)

您是否曾经发现过一个音乐很棒的视频&#xff0c;并想从视频中提取音频&#xff1f;如今&#xff0c;关于提取mp4视频中的音频需求越来越常见。例如&#xff0c;您可能想从mp4格式的电影中提取音频&#xff0c;将音乐用作手机铃声&#xff0c;或在自己的视频项目中使用视频中的…

sourceTree 解决remote: HTTP Basic: Access denied报错mac

解决sourceTree中remote: HTTP Basic: Access denied报错 mac sourcetree报错报错原因解决方案 mac sourcetree报错 warning: invalid credential line: xxx.com remote: HTTP Basic: Access denied fatal参考链接&#xff1a;https://developer.aliyun.com/article/1304149 …

Java算法常用技巧

一、排序 资料&#xff1a;https://blog.csdn.net/weixin_72499901/article/details/136592073 正排序 import java.util.Arrays;public class SortArray {public static void main(String[] args) {int[] citations {5, 3, 8, 2, 1, 4};// 打印原数组System.out.println(&…

TikTok养号新手保姆级教程

对于很多刚开始运营TikTok的新手小白来说&#xff0c;都会有一个同样的疑问&#xff0c;那就是&#xff1a;TikTok到底需不需要养号&#xff1f;这里明确告诉大家是需要养号的&#xff0c;今天就把我自己实操过的养号经验和策略总结出来&#xff0c;分享给大家。 一、什么是Ti…

kotlin数组

1、kotlin中的数组与java数组比较&#xff1a; 2、创建 fun main() {// 值创建val a intArrayOf(1,2,3)// 表达式创建val b IntArray(3){println("it: ${it}")it1}println("a数组&#xff1a;${a.contentToString()}, 长度&#xff1a;${a.size}")prin…

怎样打印微信文档文件?

在日常生活和工作中&#xff0c;我们经常需要打印微信中的文档文件&#xff0c;无论是工作资料、学习笔记还是其他重要信息。随着科技的发展&#xff0c;我们不再需要前往打印店进行繁琐的操作&#xff0c;而是可以通过一些便捷的在线打印平台轻松实现。今天&#xff0c;我们就…

CleanMyMac中文版2024破解版安装包下载最新官方免费激活码

CleanMyMac中文版&#xff0c;让你的电脑焕然一新&#xff01; 大家好&#xff0c;今天我要给大家推荐一款神奇的软件——CleanMyMac中文版。作为一个长期使用Mac的用户&#xff0c;我一直在寻找一款能够彻底清理电脑垃圾和优化系统的工具&#xff0c;而CleanMyMac正是我心心念…

Vue2动态代理无须重启项目解决方案

1、痛点 如果我们需要使用不同的环境地址的时候&#xff0c;就需要使用命令或者手动修改vue.config.js中配置来重新启动项目。当项目项目越来越大的时候&#xff0c;我们需要很长的时间来启动项目&#xff0c;如此反复&#xff0c;极大影响我们开发进度。 2、寻求解决方案 ● v…

基于Redis实现共享session登录

搭配食用&#xff1a;Redis&#xff08;基础篇&#xff09;-CSDN博客 项目实现前的 Mysql中的表&#xff1a; 表说明tb_user用户表tb_user_info用户详情表tb_shop商户信息表tb_shop_type商户类型表tb_blog用户日记表&#xff08;达人探店日记)tb_follow用户关注表tb_voucher优…

[Qt] Qt Creator 编码警告:warning:C4819

Qt项目使用VC&#xff08;2019 64bit&#xff09;编译器出现此错误。 warning&#xff1a;C4819&#xff1a;该文件包含不能在当前代码页&#xff08;936&#xff09;中表示的字符。请将该文件保存为Unicode格式以防止数据丢失。(可能这个警告内容也会在Qt Creator 中乱码) 如…

5.How Fast Should You Be When Learning?(你应该用多快的速度学习?)

Normally when I talk about learing quickly, I’m using speed as a synonym for efficiency.Use more effective methods and you’ll learn more in less time.All else being equal, that means you’re learing faster. 通常我在谈到快速学习时&#xff0c;是把“速度&qu…

APP渗透、WIFI近源渗透之透明代理下的流量分析与嗅探

APP渗透、WIFI近源渗透之透明代理下的流量分析与嗅探 原文链接&#xff1a;https://xz.aliyun.com/t/14864 前言 在攻防中对APP进行渗透时可能会遇到代理及VPN的检测&#xff0c;以及在近源渗透时可能会有WIFI钓鱼的需求&#xff0c;而透明代理是一个很好的解决方案&#xf…

Flume基础教程

Apache Flume教程 资料来源&#xff1a;Apache Flume - Introduction (tutorialspoint.com) Flume是一个标准的、简单的、健壮的、灵活的、可扩展的工具&#xff0c;用于将从各种数据生产者(web服务器)中所产生的数据抽取到Hadoop中。在本教程中&#xff0c;我们将使用简单的…

Ubuntu24多版本python解释器使用

1.前言 已给树莓派5安装了Ubuntu24.04&#xff0c;带有python3.12.3&#xff0c;现在用视觉需要用到3.11版本的python解释器 2.实操过程 主要是对用到的命令进行备份&#xff0c;方便后面查询 2.1 安装python3.11 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-ge…
最新文章