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 url验证(url-valid)的使用方法
Nov 18 NodeJs
nodejs读取memcache示例分享
Jan 02 NodeJs
nodejs教程之入门
Nov 21 NodeJs
NodeJS中Buffer模块详解
Jan 07 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
NodeJS实现客户端js加密
Jan 09 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
Nodejs异步回调之异常处理实例分析
Jun 22 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 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
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
php实现可逆加密的方法
2015/08/11 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
JS中数据结构之栈
2019/01/01 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
Django中的Model操作表的实现
2018/07/24 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
解析python实现Lasso回归
2019/09/11 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
公司出纳岗位职责
2013/12/07 职场文书
仓库保管员岗位职责
2013/12/20 职场文书
闭幕式主持词
2014/04/02 职场文书
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL