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的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
Sep 26 NodeJs
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
Dec 30 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
Nodejs实现爬虫抓取数据实例解析
Jul 05 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
PHP对字符串的递增运算分析
2010/08/08 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
PHP 面向对象详解
2012/09/13 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
关于JS中prototype的理解
2015/09/07 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
JS中数据结构之栈
2019/01/01 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
超实用的 30 段 Python 案例
2019/10/10 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
后勤部长岗位职责
2013/12/14 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
中国合伙人观后感
2015/06/02 职场文书
红色影片观后感
2015/06/18 职场文书
话题作文之自信作文
2019/11/15 职场文书