Express.js 入门造个简单的增删查改待办事项
前言
近期正在学习后端相关领域,与前端最贴近的框架绝对就是 Express.js 了,很适合目标为全端的工程师,因为可以使用单一语言最快接触到两种领域。
这次实作并不会牵扯到数据库相关的部分,侷限在使用 Express.js 打造一个简单的 in-memory 后端服务器,熟悉一下开设增删查改相关 API。
建构最小可运作 Express.js
基本环境 Node.js、开发编辑器就不多介绍了,先开个新资料夹初始化 NPM 专案并安装 Express.js。
接着只要创建一个新的 app.js
撰写 Express.js 相关代码并用 Node.js 执行 (node app.js
)即可,以下为最小可运作 Express.js。
- req 为 request 惯例缩写
- res 为 response 惯例缩写
我们将 Express 公开在 3000
通讯埠上,因此只要打开浏览器到本机的对应位置 http://localhost:3000/
就能看到 Hello World 示例。Express 有许多方法可以调用,翻阅官方文件了解更多像是:app.get()、res.send()。
建构增删查改 API
一、规划
Express.js 的 API 非常直观,对应 HTTP 请求方法 可以到官方文件找同名的方法,可以期望建构一个待办事项我们会需要:
todos
数据初始化于 Express 开启时- 开设 API 供外部与数据互动
- 撰写数据增删查改相关逻辑
二、实现
剩下就是撰写服务器内部逻辑与数据互动,我习惯独立计算出一个新的 todos
再把内容重新指派回去,中途留意一些例外状况像是编辑不存在的 ID
需要返回客户端错误。
三、检查
热门的 API 检测工具有:Postman、Hoppscotch、Insomnia,可以选一套顺手的进行检测,我偏好 Hoppscotch 并且之前也有写过相关推荐文章:从图片学习使用 Hoppscotch 来打出 API。可以创建一个群组将这次项目相关的 API 都储存起来方便管理。
补充:CORS 设置
如在前端项目遇到以上 CORS 错误信息可以参考我写过的另一篇文章:写给网页开发者的 CORS 理解。
如字面意思来说可以通过替服务器回应设置允许的 Access-Control-Allow-Origin
来允许不同通讯埠的网站也能使用该 API,这里我依靠设置 Express.js 一款 Middleware:cors 来解决。
安装完成后添加该 Middleware 并设置开放 origin 即可:
补充:使用 Nodemon 及时重启服务器
如果开发时更动后需要反复的重启服务器很麻烦可以尝试看看 Nodemon。
Nodemon 用来在开发 Node.js 应用程序时自动监测文件变更并重新启动服务器,避免手动停止并重新启动服务器的麻烦。如下添加为 NPM Script 以后可以执行 npm run dev
就能开启即时更新开发服务器了。
总结
这次实现项目:in-memory-todo 的文件有放上 GitHub,后续额外实现了前端的部分。如果对前端感兴趣可以参考我的另一篇文章:JavaScript 五个步骤制作代办事项 基本就是在此基础上接上后端的数据,并更动规避了一些 XSS 的隐患。
延伸阅读
- Hello world example - Express
- Create a Todo application with Express.js - postman
- RESTful APIs in 100 Seconds // Build an API from Scratch with Node.js Express - Fireship
- Learn CORS In 6 Minutes