使用Node.js创建接口

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

Express框架方式:

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

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

  2. 示例代码:

    html 复制代码
    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.query
      res.send({
        status: 200,
        data: body,
        message: '请求成功'
      })
    })
    
    // 如果是post可以先随意传值,传的值会放到req.body里,浏览器不支持访问post,用postman
    app.post('/my', (req, res)=>{
      const body = req.body
      res.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. 优点:

    • 快速创建路由和处理请求。
    • 使用中间件简化了请求和响应的处理。
    • 更高层次的抽象,易于维护和扩展。

Node.js HTTP模块方式:

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

  2. 示例代码:

    html 复制代码
    /**
     * 端口号:标记服务器里不同功能的服务程序端口号
     * 范围: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终止
  3. 这段代码展示了使用Node.js的HTTP模块创建一个简单的服务器,并在收到请求时返回一段欢迎消息。

  4. 优点:

    • 更底层的控制和灵活性。
    • 适用于对请求和响应的细节有更高要求的场景。
    • 更贴近原生的HTTP协议操作。
相关推荐
之恒君1 天前
Node.js 模块加载 - 4 - CJS 和 ESM 互操作避坑清单
前端·node.js
Esun_R1 天前
当 LLM 开始连接真实世界:MCP 的原理、通信与工程落地
node.js·openai·mcp
爱写程序的小高1 天前
npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
前端·npm·node.js
程序员爱钓鱼1 天前
Node.js 编程实战:测试与调试 - 单元测试与集成测试
前端·后端·node.js
哟哟耶耶1 天前
Plugin-webpack内置功能split-chunks-plugin配置打包代码分割
前端·webpack·node.js
SailingCoder1 天前
AI 流式对话该怎么做?SSE、fetch、axios 一次讲清楚
前端·javascript·人工智能·ai·node.js
天远数科1 天前
Node.js全栈实战:基于天远名下车辆数量查询API实现的智能资产核验组件
大数据·node.js
嫂子的姐夫1 天前
013-webpack:新东方
爬虫·python·webpack·node.js·逆向
爱写程序的小高1 天前
npm版本降级、nvm切换node版本、webpack版本与vue版本不一致
前端·npm·node.js
嚣张丶小麦兜1 天前
npm的应用
前端·npm·node.js