首页 > 其他分享 >angular入门篇7----Http模块的使用(1):RESTful创建资源接口

angular入门篇7----Http模块的使用(1):RESTful创建资源接口

时间:2022-10-27 00:22:13浏览次数:62  
标签:Http name price ng ---- 入门篇 catagory id description

angular入门篇7----Http模块的使用(1):RESTful创建资源接口

在前后端分离的项目中我们需要使用Http模块的功能实现后端接口提供的服务。

本篇首先简单得创建几个接口,供项目使用。

方法一 RESTful Web Service

RESTful主要是提供API设计的规范方法。在实际中我们利用RESTful将后端资源发布为URL,例如:查找数据库中一个人的工资。

这里我们使用JS代码为RESTful提供数据。

1.1 安装必要的软件包

首先我们需要安装json-server及jsonwebtoken,在项目终端输入:

npm install json-server
npm install jsonwebtoken

1.2 JavaScript代码提供数据

在\Store路径下创建一个data.js文件:

module.exports=function(){
    return{
        products:[
            {id:1,name:"Kayak",catagory:"Watersports",description:"A boat for one person",price:275},
            {id:2,name:"LifeJacket",catagory:"Watersports",description:"Protective and fasionable",price:48.95},
            {id:3,name:"Soccer Ball",catagory:"Soccer",description:"FIFA-approved size and weight",price:19.50},
            {id:4,name:"Corner Flags",catagory:"Soccer",description:"Give you playing field a professional touch",price:34.95},
            {id:5,name:"Stadium",catagory:"Soccer",description:"Flat-packed 35,000-seat stadium",price:79500},
            {id:6,name:"Thinking Cap",catagory:"Chess",description:"Improve brain efficiency by 75%",price:16},
            {id:7,name:"Unsteady Chair",catagory:"Chess",description:"Secritly give you opponent a disadvantage",price:29.95},
            {id:8,name:"Human Chess Board",catagory:"Chess",description:"A fun game for the family",price:75},
            {id:9,name:"Bling Bling King",catagory:"Chess",description:"Gold-plated,diamond-studded King",price:1200},
        ],
        order:[]
    }
}

代码内容很简单,即返回一个product[]实例供我们使用。

1.3 配置服务

package.json下找到如下内容:

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },

添加一行配置:

"scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test",
    "json": "json-server data.js -p 3500 -m authMiddleware.js"
  },

目的是使服务将data.js作为数据库,并通过3500端口访问。

运行 && 效果

在终端输入:

npm run json

可以看到如下内容:
img

我们在浏览器输入服务提供的Resources之一:

http://localhost:3500/products

可以得到如下内容:
img

方法二 Express框架

Express是nodejs内经典的框架。可以提供我们需要的路由。

2.1 添加Express到项目

在项目终端输入如下指令:

npm install express

这样我们的项目便自动添加了Express。

2.2 添加JavaScript数据源

参考1.2 的内容添加data.js文件

2.3 添加路由服务

在/Store下添加文件app.js:

const express = require("express")
const app = express()
const DataSender = require("../Store/data")

//路由服务
app.get("/data",(req,res,next)=>{
    console.log("data");
    res.send(DataSender().products)
})

app.get("/orders",(req,res,next)=>{
    console.log("orders");
    res.send(DataSender().order)
})

//监听3500端口
app.listen(3500);

不同于RESTful,这里的访问服务是我们自己写的。

2.4 启动服务

在项目终端,我们输入如下指令:

node app.js

这样项目便开始运行了。
我们在浏览器输入:

http://localhost:3500/products

http://localhost:3500/orders

便能得到结果:
img
img

下一篇我们将使用Http模块将上述接口得到的数据加载到我们的商店页面上,效果如下:
img

标签:Http,name,price,ng,----,入门篇,catagory,id,description
From: https://www.cnblogs.com/feoandcode/p/16830648.html

相关文章

  • 一.appium+jenkins实例构建
    自动化测试平台Jenkins简介  是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能......
  • 【THM】Nmap Basic Port Scans(nmap基础端口扫描)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/nmap02介绍在之前的文章中,我们专注于使用Nmap发现在线主机,并且到目前为止,我们已经介绍了Nmap扫描的三个......
  • AIR32F103(二) Linux LibOpenCM3开发环境
    目录AIR32F103(一)合宙AIR32F103CBT6开发板上手报告AIR32F103(二)LinuxLibOpenCM3开发环境Linux开发环境在Linux下和STM32F1xx的开发环境是一样的,可以使用gcc......
  • Springboot项目启动报错UnsatisfiedDependency、NoSuchBeanDefinitionException
    今天做项目的过程中,启动项目突然出现:控制台报错Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.fact......
  • element表格el-table组件实现虚拟滚动,解决数据量大渲染DOM过多而卡顿问题
    element表格el-table组件实现虚拟滚动,解决数据量大渲染DOM过多而卡顿问题当页面数据过多,前端渲染大量的DOM时,会造成页面卡死问题,使用分页或则懒加载这些方案也无法解决,这......
  • 事务的简单介绍
    事务的ACID特性A-原子性事务一个原子操作单元,对于数据的修改,要么全部执行,要么全部执行以下有两种情况需要分析?事务提交了,如果此时BufferPool的脏页没有刷盘,如何保证修......
  • 技术同学如何面对裁员浪潮?
    经常看我文章的同学应该知道,我今年经历了一次裁员。裁员后我复盘了裁员让我明白的一些职场规则,以及对自己的一些触动。具体内容可以看前面的文章:《30岁被裁,我想明白的几......
  • [java]StringTokenizei总结
    构造函数三种StringTokenizer(Stringstr)//构造一个用来解析str的StringTokenizer对象。java默认的分隔符是空格("")、制表符(\t)、换行符(\n)、回车符(\r)。Strin......
  • SpringMVC处理上传文件
    SpringMVC处理文件上传SpringMVC为文件上传提供了直接支持,这种支持是通过即插即用的MultipartResolver实现.Spring使用JakartaCommonsFileUpload技术实现了一个Mult......
  • Python: State Pattern
    GeovinDuState.py#状态模式StatePatternclassComputerState(object):name="state"allowed=[]defswitch(self,state):"""Switchto......