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中exports与module.exports的区别详细介绍
Jan 14 NodeJs
Nodejs为什么选择javascript为载体语言
Jan 13 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
Nodejs如何复制文件
Mar 09 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
浅谈Nodejs应用主文件index.js
Aug 28 NodeJs
NodeJS中的MongoDB快速入门详细教程
Nov 11 NodeJs
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
Mar 28 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 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
用PHP制作的意见反馈表源码
2007/03/11 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
下载给定网页上图片的方法
2014/02/18 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
银行求职推荐信范文
2013/11/30 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
2014年评职称工作总结
2014/11/20 职场文书
单位工作证明范本
2015/06/15 职场文书
优质护理服务心得体会
2016/01/22 职场文书
初二物理教学反思
2016/02/19 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
Nginx配置https的实现
2021/11/27 Servers
深入理解 Golang 的字符串
2022/05/04 Golang