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

使用Node.js创建接口

当使用Node.js创建接口时,有两种主要方式:使用Express框架和使用Node.js的HTTP模块。

Express框架方式:

总的来说,使用Express框架可以更快速地搭建和管理接口,而使用Node.js的HTTP模块则提供了更多底层控制和灵活性,适用于对请求和响应处理有更高要求的情况。

  1. 便捷性和简洁性: Express是一个灵活且强大的框架,通过中间件和路由系统,可以快速创建和管理接口。

  2. 示例代码:

    const express = require('express');
    const app = express();
    const cors = require('cors');// 处理跨域中间件
    app.use(cors())
    // 处理JSON表单格式中间件
    app.use(express.json());
    // const app = express();
    // 处理application/x-www-form-urlencoded表单格式的中间件
    app.use(express.urlencoded({ extended: false }))// req.query  req.body为请求接口时用户端传递的参数  http://localhost:8080/
    app.get('/', (req, res)=>{
    const body = req.queryres.send({status: 200,data: body,message: '请求成功'})
    })// 如果是post可以先随意传值,传的值会放到req.body里,浏览器不支持访问post,用postman
    app.post('/my', (req, res)=>{const body = req.bodyres.send({status: 200,data: body,message: 'POST请求成功'})
    })// 启动服务器,并监听端口8080
    app.listen(8080, () => {console.log('express server running at http://127.0.0.1')
    })

  3. 段代码展示了如何利用Express框架创建一个基本的接口,包括GET和POST请求的处理,并使用中间件来解析请求体和响应。

  4. 优点:

    • 快速创建路由和处理请求。
    • 使用中间件简化了请求和响应的处理。
    • 更高层次的抽象,易于维护和扩展。
  5. Node.js HTTP模块方式:

  6. 底层控制和更多细节: 使用Node.js的HTTP模块可以更加灵活地处理请求和响应,但需要手动处理更多的细节,如请求头、响应头的设置和数据的处理。

  7. 示例代码:

    /*** 端口号:标记服务器里不同功能的服务程序端口号* 范围:0-65535之间的任意整数* 注意:http 协议,默认访问 80 端口*//*** 目标:基于 http 模块创建 Web 服务程序*  1.1 加载 http 模块,创建 Web 服务对象*  1.2 监听 request 请求事件,设置响应头和响应体*  1.3 配置端口号并启动 Web 服务*  1.4 浏览器请求(http://localhost:3000)测试*/
    // 1.1 加载 http 模块,创建 Web 服务对象
    const http = require('http')
    const server = http.createServer()
    // 1.2 监听 request 请求事件,设置响应头和响应体
    server.on('request', (req, res) => {// 设置响应头-内容类型-普通文本以及中文编码格式res.setHeader('Content-Type', 'text/plain;charset=utf-8')// 设置响应体内容,结束本次请求与响应res.end('欢迎使用 Node.js 和 http 模块创建的 Web 服务')
    })
    // 1.3 配置端口号并启动 Web 服务
    server.listen(3000, () => {console.log('Web 服务启动成功了')
    })// ctrl+c终止

  8. 这段代码展示了使用Node.js的HTTP模块创建一个简单的服务器,并在收到请求时返回一段欢迎消息。

  9. 优点:

    • 更底层的控制和灵活性。
    • 适用于对请求和响应的细节有更高要求的场景。
    • 更贴近原生的HTTP协议操作。
http://www.lryc.cn/news/258994.html

相关文章:

  • 【起草】人人都应该有一个chatGPT助手
  • TCP/IP详解——网络基本概念
  • [Linux] ps命令详解
  • QT 中基于 TCP 的网络通信 (备查)
  • 使用MIB builder自定义物联网网关的MIB结构
  • 特权FPGA学习笔记
  • 利用阿里云 DDoS、WAF、CDN 和云防火墙为在线业务赋能
  • Mysql的事务日志
  • 三、Shell 环境
  • 2023年第三届产业数字化【金铲奖】重磅来袭!
  • node.js安装和配置
  • 【周报2023.12.09】
  • 基于ssm大学生创新创业平台项目管理子系统设计与实现论文
  • JS基础之原型原型链
  • 【力扣100】54.螺旋矩阵
  • UI 优先的统一身份认证系统 Casdoor
  • Realme X7 Pro Root 刷机教程
  • postgresql自带指令命令系列三
  • Java_mybatis-结果集映射-ResultTypeResultMap
  • 【Java】MySQL存储 MD5 值应该用 VARCHAR 还是CHAR?
  • pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm
  • 2023第二届全国大学生数据分析大赛A完整原创论文(含摘要+问题分析+模型建立与求解+python代码)
  • Qt 面试指南
  • 开利网络的数字化技术加持下,加快扶贫和乡村振兴的效果和进程!
  • PR剪辑视频做自媒体添加字幕快速方式(简单好用的pr视频字幕模板)
  • 金融行业文件摆渡,如何兼顾安全和效率?
  • [足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-1开环系统与闭环系统Open/Closed Loop System
  • 每日一题,杨辉三角
  • Java_Mybatis_缓存
  • C#基础面试题集