详解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 相关文章推荐
记录几个javascript有关的小细节
Apr 02 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
jquery 扑捉回车键事件代码
Apr 24 Javascript
javascript文本模板用法实例
Jul 31 Javascript
Javascript中的数组常用方法解析
Jun 17 Javascript
web 屏蔽BackSpace键实例代码
Dec 24 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 Javascript
微信小程序实时聊天WebSocket
Jul 05 Javascript
webpack 最佳配置指北(推荐)
Jan 07 Javascript
JS轻量级函数式编程实现XDM二
Jun 16 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
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
JQuery魔力之$("tagName")与selector
2012/03/05 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
js图片预加载示例
2014/04/30 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
domReady的实现案例
2016/11/23 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
详解python3中tkinter知识点
2018/06/21 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
Python重新加载模块的实现方法
2018/10/16 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Django ModelForm操作及验证方式
2020/03/30 Python
python实时监控logstash日志代码
2020/04/27 Python
Python可以实现栈的结构吗
2020/05/27 Python
入党申请书自我鉴定
2013/10/12 职场文书
幼师自荐信
2013/10/26 职场文书
李开复演讲稿
2014/05/24 职场文书
大学生交通专业求职信
2014/09/01 职场文书
高中校园广播稿
2014/10/21 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
班主任自我评价范文
2015/03/11 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
暖春观后感
2015/06/08 职场文书
二年级数学教学反思
2016/02/16 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python