详解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实现点击标题输入详细信息
Apr 16 Javascript
根据表格中的某一列进行排序的javascript代码
Nov 29 Javascript
JavaScript字符串常用类使用方法汇总
Apr 14 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
Aug 07 Javascript
jQuery 全选 全不选 事件绑定的实现代码
Jan 23 Javascript
解决Extjs下拉框不显示的问题
Jun 21 Javascript
通过源码分析Vue的双向数据绑定详解
Sep 24 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
Nov 15 Javascript
详解webpack多页面配置记录
Jan 22 Javascript
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
监听angularJs列表数据是否渲染完毕的方法示例
Nov 07 Javascript
记一次react前端项目打包优化的方法
Mar 30 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 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
php发送post请求函数分享
2014/03/06 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
总结js函数相关知识点
2018/02/27 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
Python聊天室实例程序分享
2016/01/05 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
酒店总经理工作职责
2013/12/13 职场文书
办公室文书岗位职责
2013/12/16 职场文书
大学新生军训感言
2014/02/25 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
爱情保证书
2015/01/17 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python