Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(上)

简介: Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)

Node.js Stream(流)(三)



1、管道流


管道提供了一个数据从输出流到输入流的机制。


我们使用管道可以从一个流中获取数据并将数据传递到另外一个流中。


举例:复制文件


我们把文件比作装水的桶,而水就是文件里的内容,我们用一根管子 (pipe) 连接两个桶使得水从一个桶流入另一个桶,这样就慢慢的实现了大文件的复制过程。

var fs = require("fs");
// 创建一个可读流
var readerStream = fs.createReadStream('input.txt');
// 创建一个可写流
var writerStream = fs.createWriteStream('output.txt');
// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到output.txt 文件中
readerStream.pipe(writerStream);


2、链式流


链式是通过连接输出流到另外一个流并创建多个流操作链的机制。


pipe() 方法的返回值是目标流。

var fs = require("fs");
var zlib = require('zlib');
// 压缩 input.txt 文件为 input.txt.gz
fs.createReadStream('input.txt').pipe(zlib.createGzip()).pipe(fs.createWriteStream('input.txt.gz')
);
var fs = require("fs");
var zlib = require('zlib');
// 解压 input.txt.gz 文件为 input.txt
fs.createReadStream('input.txt.gz').pipe(zlib.createGunzip()).pipe(fs.createWriteStream('input.txt'));


Node.js http模块



HTTP 核心模块是 Node.js 网络的关键模块。


使用该模块可以创建web服务器。


1、引入http模块

const http = require('http')


2、创建 Web 服务器

//返回 http.Server 类的新实例
//req是个可读流
//res是个可写流
const server=http.createServer( function (req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
  res.write('服务器响应了,这是响应内容')
  res.end()
})


3、启动服务器并监听某个端口

server.listen('3030',function(){
    console.log('服务器已做好准备,正在监听3030端口')
})


Node.js GET/POST请求(一)



1、获取 POST 请求内容

<!-- test.html -->
<form id="form1" action="http://localhost:3030" method="post">
   姓名:<input type="text" name="name"><br />
   年龄:<input type="text" name="age"><br />
    <input type="submit" value="提交"
/>
</form>
//test.js
const http=require('http')
const querystring = require('querystring')
const server = http.createServer((req, res) => {
  var bodyStr = ''
    req.on('data', function (chunk) {
       bodyStr += chunk
 })
  req.on('end', function () {
   const body = querystring.parse(bodyStr);
   // 设置响应头部信息及编码
   res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
    if(body.name && body.age) {
      res.write("姓名:" + body.name);
      res.write("<br>");
      res.write("年龄:" + body.age);
   }
    res.end()
 });
})
server.listen('3030',function(){
  console.log('服务器正在监听3030端口')
})


Node.js GET/POST请求(二)



1、获取Get请求内容

//浏览器访问地址
http://localhost:3030/?name=%27baizhan%27&&age=10
const http = require('http')
const url = require('url')
const server = http.createServer(function (req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
  //使用url.parse将路径里的参数解析出来
  const { query = {} } = url.parse(req.url, true)
  for ([key, value] of Object.entries(query)) {
    res.write(key + ':' + value)
 }
  res.end();
})
server.listen('3030', function () {
  console.log('服务器正在监听3030端口')
})


Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(下):https://developer.aliyun.com/article/1420282

目录
相关文章
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
3天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
18 8
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
72 0
|
6天前
|
安全 网络安全 开发工具
对象存储oss使用问题之flutter使用http库进行post请求文件上传返回400如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
18 1
|
7天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
19天前
|
Go
go语言的http post推送
go语言的http post推送
10 1
|
1月前
|
监控 网络安全 C++
Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器
Qt 5.14.2 网络编程揭秘:构建高效HTTP客户端与文件下载器
|
1月前
|
JavaScript
Node.js之http模块
Node.js之http模块
|
1月前
|
缓存
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
HTTP协议中,GET和POST有什么区别?分别适用什么场景?
36 0
|
1月前
|
数据采集 JavaScript 前端开发
利用axios库在Node.js中进行代理请求的实践
利用axios库在Node.js中进行代理请求的实践