Node.js 编写接口入门学习(GET、POST)

简介: Node.js 编写接口入门学习(GET、POST)

一、简介

$ node -v
  • 安装完成之后,通过 node 直接运行 test.js
// test.js
console.log('Hello Node')
# 命令行执行
$ node test.js

二、简单的 POSTGET 请求封装

  • test.js
// http 库
const http = require('http')
// 参数解析
const querystring = require('querystring')
// 创建服务
const server = http.createServer((req, res) => {
  // req:请求 res:响应
  // 配置响应数据编码格式
  res.setHeader('Content-Type', 'application/json')
  // 请求方式
  const method = req.method
  // 路由地址
  const url = req.url
  // 拆分成请求路由、请求参数
  const strs = url.split('?')
  // 请求路由
  const path = strs[0]
  // 参数
  const query = querystring.parse(strs[1])
  // 组装成响应数据
  const resData = {
    method,
    url,
    path,
    query
  }
  // 判断请求类型
  if (method === 'GET') {
    // 返回响应数据
    res.end(JSON.stringify(resData))
  } else if (method === 'POST') {
    // 请求数据
    let postData = ''
    // 接收数据流 stream
    req.on('data', chunk => {
      // chunk 为二进制数据,所以需要转成字符串,而且数据是一点一点传过来的,也自然需要拼接
      postData += chunk.toString()
    })
    // 接收完成
    req.on('end', () => {
      // 组装数据
      resData.postData = postData
      // 响应数据
      res.end(JSON.stringify(resData))
    })
  } else {
    res.end('请求方式有误!')
  }
})
// 监听端口
// 如果启动报错:Error: listen EADDRINUSE: address already in use :::5000,说明 5000 端口被使用了,换一个端口
server.listen(8000, () => {
  console.log('server running at port 8000')
})
// 运行之后,则可以访问 http://localhost:8000/api/test?id=3
  • 请求效果


三、GET 请求

  • test.js
// http 库
const http = require('http')
// 参数解析
const querystring = require('querystring')
// 创建服务
const server = http.createServer((req, res) => {
  // req:请求 res:响应
  // 获得请求方式
  const method = req.method
  // 请求地址
  const url = req.url
  // 请求参数,传入空也没事
  const query = querystring.parse(url.split('?')[1])
  // 放到请求对象中
  req.query = query
  // 设置响应数据编码格式,这样访问之后就不会出现乱码了
  res.setHeader('Content-Type','text/html; charset=utf-8')
  // 响应数据
  // res.end('Hello Node!并测试中文内容为乱码')
  res.end(JSON.stringify(req.query))
})
// 监听端口
// 如果启动报错:Error: listen EADDRINUSE: address already in use :::5000,说明 5000 端口被使用了,换一个端口
server.listen(8000, () => {
  console.log('server running at port 8000')
})
// 运行之后,则可以访问 http://localhost:8000/?id=3
  • 挂起服务,然后访问 http://localhost:8000/?id=3
$ node test.js
server running at port 8000

四、POST 请求

  • test.js
// http 库
const http = require('http')
// 参数解析
const querystring = require('querystring')
// 创建服务
const server = http.createServer((req, res) => {
  // req:请求 res:响应
  // 设置响应数据编码格式,这样访问之后就不会出现乱码了
  res.setHeader('Content-Type','text/html; charset=utf-8')
  // 获得请求方式
  const method = req.method
  // 是否为 POST 请求
  if (method === 'POST') {
    // POST数据
    let postData = ''
    // 接收数据流 stream
    req.on('data', chunk => {
      // chunk 为二进制数据,所以需要转成字符串,而且数据是一点一点传过来的,也自然需要拼接
      postData += chunk.toString()
    })
    // 接收完成
    req.on('end', () => {
      // 响应数据
      res.end(postData)
      // res.end({ 'msg': '数据接收完毕', 'data': postData })
    })
  } else {
    // 其他请求
    res.end('请使用 POST 请求')
  }
})
// 监听端口
// 如果启动报错:Error: listen EADDRINUSE: address already in use :::5000,说明 5000 端口被使用了,换一个端口
server.listen(8000, () => {
  console.log('server running at port 8000')
})
// 运行之后,则可以访问 http://localhost:8000/?id=3
  • 挂起服务,然后通过 Postman 或 Apifox 访问 http://localhost:8000
$ node test.js
server running at port 8000
相关文章
|
1月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
257 2
|
14天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
14天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
22 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
22天前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
57 10
|
20天前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
1月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
1月前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
22 1
|
1月前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
19 2
|
1月前
|
JavaScript
js学习--九宫格抽奖
js学习--九宫格抽奖
18 2
|
1月前
|
JavaScript
js学习--开屏弹窗
js学习--开屏弹窗
35 1