详解node.js的http模块实例演示


Posted in Javascript onJuly 12, 2018

上世纪六七十年代,红岸基地一直在向茫茫外太空发送讯号,当叶文洁通过太阳作为广播,将地球的讯号向外发送时,宇宙的各个先进文明都接收到了讯号,其中就包括了离我们最近的三体星。

本篇用node.js的http模块模拟这一事件。

let http = require('http')
// 创建一个web服务器
let server = http.createServer()

server.on('request', function () {
  console.log('我们接收到了一个用原始膜发送讯号的文明,这个文明竟然完全不知道宇宙的黑暗森林法则,我们暂不清理她,观察下这个文明的状态')
})

let port = 8000
server.listen(port, function () {
  console.log('在浏览器访问: http://127.0.0.1:' + port + ', 你将把你的请求发送到宇宙中...')
})

开启服务:

☁ 01 [master] :zap: node 08.js
在浏览器访问: http://127.0.0.1:8000, 你将把你的请求发送到宇宙中...
我们接收到了一个用原始膜发送讯号的文明,这个文明竟然完全不知道宇宙的黑暗森林法则,我们暂不清理她,观察下这个文明的状态

由于服务端没有给客户端响应,因为客户端一直在等待响应

详解node.js的http模块实例演示

http服务.gif

当我们的请求被三体星获取到后,三体人由于自己的母星不宜生存,在ETO组织的协助下,三体星准备入侵地球,以下是ETO与三体星的通信:

详解node.js的http模块实例演示

三体指令

let http = require('http')
let fs = require('fs')

// 创建一个web服务器
let server = http.createServer()

server.on('request', function (req, res) {
  let url = req.url
  if (url === '/') {
    // 设置编码格式,避免中文乱码
    res.setHeader('Content-Type', 'text/plain; charset=utf-8')
    res.end('欢迎来到三体世界')
  } else if (url === '/point') {
    console.log('地球人不知道有黑暗森林的存在,叶文洁悟出了这个道理,并启发了罗辑,我们要让ETO杀了罗辑')
    fs.readFile('./data/threeBody.html', function (err, data) {
      if (err) {
        res.setHeader('Content-Type', 'text/plain; charset=utf-8')
        res.end('星际网络出故障了,文件读取不到')
      } else {
        // 发送html文件,需要表示文件头是 text/html
        res.setHeader('Content-Type', 'text/html; charset=utf-8')
        res.end(data)
      }
    })
  } else if (url === '/photo') {
    console.log('ETO要看我们的星际环境,给他们传送张图片吧')
    fs.readFile('./data/threeBody.jpeg', function (err, data) {
      if (err) {
        res.setHeader('Content-Type', 'text/plain; charset=utf-8')
        res.end('星际网络出故障了,图片读取不到')
      } else {
        // 发送图片用的是二进制格式
        res.end(data)
      }
    })
  } else {
    res.setHeader('Content-Type', 'text/plain; charset=utf-8')
    res.end('消息已沉入茫茫宇宙中...')
  }
})

// 自定义端口
let port = 8000
server.listen(port, function () {
  console.log('与三体的通信又搭建成功,在浏览器访问: http://127.0.0.1:' + port)
})

详解node.js的http模块实例演示

三体通信服务.gif

每次改动服务端的代码,都需要重启服务

关于http模块的api使用说明,详见 http模块文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
加载jQuery后$冲突的解决办法
Jul 09 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
Dec 06 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 Javascript
Javascript异步编程模型Promise模式详细介绍
May 08 Javascript
用box固定长宽实现图片自动轮播js代码
Jun 09 Javascript
jQuery中用dom操作替代正则表达式
Dec 29 Javascript
探索Javascript中this的奥秘
Dec 11 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
jQuery Jsonp跨域模拟搜索引擎
Jun 17 jQuery
Vue-Cli中自定义过滤器的实现代码
Aug 12 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
Mar 28 jQuery
ZK中使用JS读取客户端txt文件内容问题
Nov 07 Javascript
Vue中使用的EventBus有生命周期
Jul 12 #Javascript
JavaScript中发出HTTP请求最常用的方法
Jul 12 #Javascript
vue实现引入本地json的方法分析
Jul 12 #Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 #jQuery
JS实现将二维数组转为json格式字符串操作示例
Jul 12 #Javascript
vue路由组件按需加载的几种方法小结
Jul 12 #Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 #jQuery
You might like
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
不同Jquery版本引发的问题解决
2013/10/14 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
浅谈js闭包理解
2019/03/28 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
Python模拟三级菜单效果
2017/09/11 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
python线程的几种创建方式详解
2019/08/29 Python
python selenium循环登陆网站的实现
2019/11/04 Python
Python高级property属性用法实例分析
2019/11/19 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
学院书画协会部门岗位职责
2013/12/01 职场文书
挑战杯创业计划书的写作指南
2014/01/07 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
优秀团支部申报材料
2014/12/26 职场文书
个人年终总结结尾
2015/03/06 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
2016年记者节感言
2015/12/08 职场文书
小学英语教学反思范文
2016/02/15 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
python使用glob检索文件的操作
2021/05/20 Python
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技