NodeJS http模块用法示例【创建web服务器/客户端】


Posted in NodeJs onNovember 05, 2019

本文实例讲述了NodeJS http模块用法。分享给大家供大家参考,具体如下:

Node.js提供了http模块,用于搭建HTTP服务端和客户端。

创建Web服务器

/**
 * node-http 服务端
 */
let http = require('http');
let url = require('url');
let fs = require('fs');
// 创建服务器
let server = http.createServer((req, res) => {
  // 解析请求
  let pathname = url.parse(req.url).pathname; // 形如`/index.html`
  console.log('收到对文件 ' + pathname + '的请求');
  // 读取文件内容
  fs.readFile(pathname.substr(1), (err, data) => {
    if (err) {
      console.log('文件读取失败:' + err);
      // 设置404响应
      res.writeHead(404, {
        'Content-Type': 'text/html'
      });
    }
    else {
      // 状态码:200
      res.writeHead(200, {
        'Content-Type': 'text/html'
      });
      // 响应文件内容
      res.write(data.toString());
    }
    // 发送响应
    res.end();
  });
});
server.listen(8081);
console.log('服务运行在:http://localhost:8081,请访问:http://localhost:8081/index.html');

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Node http</title>
</head>
<body>
  <h1>Hi~</h1>
</body>
</html>

运行server.js,打开浏览器访问。

创建客户端

client.js

/**
 * node http 创建客户端
 */
let http = require('http');
// 请求选项
let options = {
  host: 'localhost',
  port: '8081',
  path: '/index.html'
};
// 处理响应的回调函数
let callback = (res) => {
  // 不断更新数据
  let body = '';
  res.on('data', (data) => {
    body += data;
  });
  res.on('end', () => {
    console.log('数据接收完成');
    console.log(body);
  });
}
// 向服务端发送请求
let req = http.request(options, callback);
req.end();

运行server.js,再运行client.js。

希望本文所述对大家node.js程序设计有所帮助。

NodeJs 相关文章推荐
nodejs的10个性能优化技巧
Jul 15 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 NodeJs
Nodejs 复制文件/文件夹的方法
Aug 24 NodeJs
解决Nodejs全局安装模块后找不到命令的问题
May 15 NodeJs
详解NodeJs开发微信公众号
May 25 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 NodeJs
nodejs提示:cross-device link not permitted, rename错误的解决方法
Jun 10 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
nodejs实现UDP组播示例方法
Nov 04 #NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 #NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 #NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 #NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 #NodeJs
Nodejs监控事件循环异常示例详解
Sep 22 #NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 #NodeJs
You might like
JavaScript 函数调用规则
2009/09/14 Javascript
33种Javascript 表格排序控件收集
2009/12/03 Javascript
jquery操作select大全
2014/04/25 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
javascript常用函数(1)
2015/11/04 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
Python实现获取某天是某个月中的第几周
2015/02/11 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Python数据存储之 h5py详解
2019/12/26 Python
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
质量负责人任命书
2014/06/06 职场文书
中国梦团日活动总结
2014/07/07 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
节能环保演讲稿
2014/08/28 职场文书
小学庆六一活动总结
2014/08/28 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
2014年商场工作总结
2014/11/22 职场文书
行政处罚告知书
2015/07/01 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL