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全栈框架StrongLoop推荐
Nov 09 NodeJs
使用nodejs开发cli项目实例
Jun 03 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
浅谈使用nodejs搭建web服务器的过程
Jul 20 NodeJs
nodeJs项目在阿里云的简单部署
Nov 27 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
php4的session功能评述(三)
2006/10/09 PHP
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
PHP 万年历实现代码
2012/10/18 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
微信API接口大全
2015/04/15 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
JS操作数据库的实例代码
2013/10/17 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
原生js实现贪吃蛇游戏
2020/10/26 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
详解Python多线程
2016/11/14 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
python实现飞船大战
2020/04/24 Python
用python批量下载apk
2020/12/29 Python
幼教个人求职信范文
2013/12/02 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
2015年度物流工作总结
2015/04/30 职场文书
新入职员工工作总结
2015/10/15 职场文书
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
关于Redis的主从复制及哨兵问题
2022/06/16 Redis