糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > express 初步认知

express 初步认知

时间:2022-09-07 12:52:53

相关推荐

express 初步认知

express 初探

文章目录

express 初探起始REST APInodemonexpress 中间件中间件的错误处理 express 常用中间件express.static()express.urlencoded()express.json() express 路由小结

起始

npm i express // 安装

// 方式 1 -- 配合 http 模块使用const express = require(express);const http = require(http);const app = express(); // 创建一个 express 应用// app 实际是一个函数,用于处理请求的函数const server = http.createServer(app);const port = 9999;server.listen(port, () => console.log(`server listening on ${port}...`));// 方式 2const express = require(express);const app = express(); // 内部使用了 http 模块const port = 9999;app.listen(port, () => console.log(`server listening on ${port}...`));

配置

// 根据不同的配置,交给不同的处理函数进行处理const express = require(express);const app = express();// 配置一个请求映射,如果请求方法和请求路径均满足匹配,就交给对应的处理函数进行处理// app.请求方法("请求路径", 处理函数);app.get(./news/:id, (req, resp) => {// req 和 resp 是经过 express 封装过后的请求 / 响应对象console.log(req.headers); // 获取请求头console.log(req.path); // 获取请路径console.log(req.query); // 获取查询值,并封装成对象console.log(req.params); // 获取动态路径值 如请求路径是 ./news/9527 => { id: 9527 }// 响应resp.send(); // 响应结果,内部会调用 end/*** send 里是字符串 -> 自动设置 Content-Type: text/html* 若是数组或对象什么的内容,则会设置 Content-Type: application/json*/resp.setHeader(); // 手动设置响应头resp.status(302).header(location, "").end(); // 设置状态码,重定向到百度// 语法糖 - 简化上句代码resp.status(302).location("").end();// 或resp.redirect(302, ""); // 默认 301 永久重定向});app.get("*", (req, res) => {// 匹配所有路径的 get 请求// ...});

REST API

摘自 → 简书

api 与用户的通信协议,总是使用 HTTPS 协议以保证数据传输的安全性。

应该尽量将 api 部署在专用域名之下 -

如果 api 很简单,不会有进一步的扩展,可以放在主域名之下 -/api/

应该将 api 的版本号放入 url -https://api.xxx.xom/version1/

另一种做法是将版本号放入 http 头信息之中,但不如在 url 中直观

路径(EndPoint) - 表示 api 的具体网址。

在 RESTful 架构中,每个网址代表一种资源(resource),所以网址中只能有名词,而且名词往往对应数据库表。所以 api 中的名词一般使用复数名词。

对于资源的具体操作类型,由 http 动词表示(常用的有下面 5 个):

GET (SELECT) ------- 从服务器取出资源(一项或多项)。

POST(CREATE) ----- 在服务器新建一个资源。

PUT(UPDATE) ------ 在服务器更新资源(客户端提供改变后的完整资源)。

PATCH(UPDATE) ---- 在服务器更新资源(客户端提供改变的属性)。

DELETE(DELETE) — 从服务器删除资源。

以及两个不常用的 http 动词 – HEAD / OPTIONS

例如:

统一的 api 接口,通过不同的请求方法完成操作

/api/student ----------- post ---------- 添加学生

/api/student ----------- get ----------- 获取学生信息

/api/student/:id ------- get ----------- 获取某个学生信息

/api/student ----------- put ----------- 修改学生信息

/api/student/:id ------- put ----------- 修改某个学生信息

/api/student ----------- delete -------- 删除学生

… 依次类推

过滤信息

如果存在数据量很大,不可能全部返回给客户端。所以通过 api 提供参数,过滤结果

?limit=10 -------------- 指定返回 10 条数据

?offset=10 ------------- 指定跳过 10 条

?page=x&per_page=y ----- 指定第 x 页,及每页数据量

… 以及一些其他筛选条件

参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如:

GET /zoo/ID/animalsGET /animals?zoo_id=ID的含义是相同的。

状态码: 服务器向用户返回的状态码和提示信息(常见的 200, 301, 302, 400, 403, 404, 500等)

错误处理:状态码是4xx,就应该向用户返回错误信息。

返回结果:针对不同的操作,服务器向用户返回的结果应该符合以下规范:

GET ------ /collection:返回资源对象的列表(数组)

GET ------ /collection/resource:返回单个资源对象

POST

如果觉得《express 初步认知》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。