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

 更新时间:2018年07月12日 14:24:09   作者:章鱼喵_  
这篇文章主要介绍了详解node.js的http模块实例演示,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

本篇用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, 你将把你的请求发送到宇宙中...
我们接收到了一个用原始膜发送讯号的文明,这个文明竟然完全不知道宇宙的黑暗森林法则,我们暂不清理她,观察下这个文明的状态

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

http服务.gif

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

三体指令

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)
})

三体通信服务.gif

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

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

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

相关文章

  • nodejs前端自动化构建环境的搭建

    nodejs前端自动化构建环境的搭建

    本文这里给大家介绍的是nodejs中前端自动化构建环境的搭建方法,非常的细致全面,有需要的小伙伴可以参考下
    2017-07-07
  • 用Nodejs搭建服务器访问html、css、JS等静态资源文件

    用Nodejs搭建服务器访问html、css、JS等静态资源文件

    本篇文章主要介绍了用Nodejs搭建服务器访问html、css、JS等静态资源文件的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Node.jsv16 版本安装的实现

    Node.jsv16 版本安装的实现

    本文主要介绍了Node.jsv16 版本安装的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 原生nodejs使用websocket代码分享

    原生nodejs使用websocket代码分享

    本文给大家分享的是在原生的nodejs中如何使用websocket实现信息传输,非常实用,有需要的小伙伴可以参考下
    2018-04-04
  • 从reflect metadata理解Nest实现原理

    从reflect metadata理解Nest实现原理

    这篇文章主要为大家介绍了从reflect metadata理解Nest实现原理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • node通过npm写一个cli命令行工具

    node通过npm写一个cli命令行工具

    本篇文章主要介绍了node通过npm写一个cli命令行工具 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 详解使用Visual Studio Code对Node.js进行断点调试

    详解使用Visual Studio Code对Node.js进行断点调试

    这篇文章主要介绍了详解使用Visual Studio Code对Node.js进行断点调试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • nodejs文件实现打包成exe, 并设置开机自启动的方法详解(没有黑窗口)

    nodejs文件实现打包成exe, 并设置开机自启动的方法详解(没有黑窗口)

    这篇文章主要介绍了nodejs文件实现打包成exe, 并设置开机自启动的方法,结合实例形式分析了node.js使用pkg包实现生成exe可执行文件的相关操作技巧,需要的朋友可以参考下
    2023-05-05
  • Nodejs基于Windows安装步骤

    Nodejs基于Windows安装步骤

    这篇文章主要介绍了Nodejs基于Windows安装步骤,本文分步骤结合图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • nodeJs事件循环运行代码解析

    nodeJs事件循环运行代码解析

    这篇文章主要为大家介绍了nodeJs事件循环运行代码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论