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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
nodejs搭建本地服务器轻松解决跨域问题
Mar 21 NodeJs
nodejs前端模板引擎swig入门详解
May 15 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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多进程编程实例
2014/10/15 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
flexigrid 参数说明
2010/11/23 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
js取得url地址参数实例
2013/02/22 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
python如何删除列为空的行
2020/07/17 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
医学生实习自我鉴定
2013/09/27 职场文书
财务管理职业生涯规划范文
2013/12/27 职场文书
项目合作协议书范本
2014/04/16 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
跑吧孩子观后感
2015/06/10 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers