当前位置: 首页 > news >正文

使用Node.js与Express构建RESTful API

💖 博客主页:瑕疵的CSDN主页
💻 Gitee主页:瑕疵的gitee主页
🚀 文章专栏:《热点资讯》

使用Node.js与Express构建RESTful API

    • 1 引言
    • 2 Node.js与Express简介
    • 3 安装Node.js与Express
    • 4 创建Express项目
    • 5 创建API路由
    • 6 数据存储
    • 7 身份验证与授权
    • 8 错误处理
    • 9 部署应用
    • 10 测试API
    • 11 总结
    • 12 参考资料

1 引言

Node.js是一个开放源代码、跨平台的JavaScript运行环境,用于开发服务器端和网络应用。Express是Node.js的一个流行框架,它简化了构建Web应用和API的过程。本文将详细介绍如何使用Node.js与Express框架来构建一个RESTful API。
一张展示使用Node.js与Express构建RESTful API的流程图,包括安装Node.js与Express、创建Express项目、创建API路由、数据存储、身份验证与授权、错误处理以及部署应用等内容。

2 Node.js与Express简介

Node.js允许使用JavaScript编写服务器端代码,Express则为开发者提供了丰富的特性,如路由、中间件、错误处理等,使开发过程更加简单快捷。

3 安装Node.js与Express

首先,确保你的计算机上已安装了Node.js,然后安装Express。

npm install express

4 创建Express项目

使用Express创建一个新的项目。

node-rest-api/
├── package.json
├── package-lock.json
├── node_modules/
├── .gitignore
├── README.md
├── app.js
└── routes/└── api.js

编辑 app.js 文件来初始化Express应用。

const express = require('express');
const app = express();app.use(express.json()); // 中间件解析JSON请求体const PORT = process.env.PORT || 3000;app.listen(PORT, () => {console.log(`Server running on port ${PORT}`);
});

5 创建API路由

创建一个API路由来处理HTTP请求。

// routes/api.js
const express = require('express');
const router = express.Router();// GET 请求示例
router.get('/', (req, res) => {res.status(200).json({ message: 'Welcome to our API!' });
});module.exports = router;

app.js 中使用这个路由。

const apiRoutes = require('./routes/api');app.use('/api', apiRoutes);

6 数据存储

使用内存存储来模拟数据持久化。

let items = [{ id: 1, name: 'Item One' },{ id: 2, name: 'Item Two' },
];router.get('/items', (req, res) => {res.json(items);
});router.post('/items', (req, res) => {const newItem = req.body;items.push(newItem);res.status(201).json(newItem);
});

7 身份验证与授权

使用JSON Web Tokens (JWT)来进行身份验证。

npm install jsonwebtoken
// routes/api.js
const jwt = require('jsonwebtoken');
const secretKey = 'yourSecretKey';function authenticateToken(req, res, next) {const authHeader = req.headers['authorization'];const token = authHeader && authHeader.split(' ')[1];if (token == null) return res.sendStatus(401);jwt.verify(token, secretKey, (err, user) => {if (err) return res.sendStatus(403);req.user = user;next();});
}router.use(authenticateToken);

8 错误处理

添加错误处理中间件来捕获和处理错误。

app.use((err, req, res, next) => {console.error(err.stack);res.status(500).send('Something broke!');
});

9 部署应用

可以使用Heroku或其他云服务提供商来部署你的Node.js应用。

git push heroku master

10 测试API

使用Postman或curl命令来测试API。

curl --location --request POST 'http://localhost:3000/api/items' \
--header 'Content-Type: application/json' \
--data-raw '{"name":"NewItem"}'

11 总结

通过本文,我们介绍了如何使用Node.js与Express框架来构建RESTful API,包括安装Node.js与Express、创建Express项目、创建API路由、数据存储、身份验证与授权、错误处理以及部署应用。掌握了这些基础知识后,你可以开始构建自己的RESTful API了。

12 参考资料

  • [1] Express.js Documentation. (2024). Expressjs.com. Retrieved from [Express.js文档链接]
http://www.lryc.cn/news/471511.html

相关文章:

  • 从0开始搭建一个生产级SpringBoot2.0.X项目(二)SpringBoot应用连接数据库集成mybatis-plus
  • Docker部署教程:打造流畅的斗地主网页小游戏
  • redis的客户端
  • 图片分类标注工具python
  • Rust命令行,实现自动反编译Android APK包工具
  • 10. NSTableView Table 数据表格
  • javase笔记8---File与IO流
  • docker上传离线镜像包到Artifactory
  • 【专用名词的离线语音识别在2024年底的解决方法调查-会议签到的补充】
  • OS基础-
  • 《大型语言模型实战指南:应用实践与场景落地》一文详解大型语言模型的11种微调方法
  • 嵌入式浏览器 -- Chromium VS Firefox
  • 权限大、数量多、破坏强、管理难......企业特权访问管理怎么管?
  • UE5 第一人称示例代码阅读0 UEnhancedInputComponent
  • 如何在Linux下安装和配置Docker
  • apisix的原理及作用,跟spring cloud gateway有什么区别?
  • 华为HarmonyOS实现实时语音识别转文本
  • DIY可视化-uniapp悬浮菜单支持拖动、吸附-代码生成器
  • HTTP cookie 与 session
  • 智慧停车场导航系统架构及反向寻车系统解决方案
  • 【小程序上传图片封装2024,支持多图,带进度,上传头像】
  • [A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device Normal)
  • 驾校管理系统|基于java和小程序的驾校管理系统设计与实现(源码+数据库+文档)
  • @Mapper使用中遇到的问题解法汇总
  • 深度学习:YOLO V3 网络架构解析
  • SpringCloudAlibaba-Sentinel-熔断与限流
  • mysql中的mvcc理解
  • ETF申购赎回指南:详解注意事项与低费率券商推荐!
  • List<T>属性和方法使用
  • 记一次:使用使用Dbeaver连接Clickhouse