美文网首页程序员
node.js的http模块实例演示

node.js的http模块实例演示

作者: 闲睡猫 | 来源:发表于2018-07-10 15:52 被阅读67次

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

本篇用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] ⚡ 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模块文档

相关文章

  • node.js的http模块实例演示

    上世纪六七十年代,红岸基地一直在向茫茫外太空发送讯号,当叶文洁通过太阳作为广播,将地球的讯号向外发送时,宇宙的各个...

  • Node.js HTTP模块

    内置HTTP模块 Node.js 中有 HTTP 这个内置模块,HTTP 模块允许 Node.js 通过超文本传输...

  • 兄弟会8.9号笔记

    node.js模块学习 http 模块 fs 模块 url 模块 http 模块 HTTP http.STA...

  • Node.js HTTP模块

    内置HTTP模块 Node.js中有HTTP这个一个内置模块,它允许Node.js通过超文本传输协议(HTTP)传...

  • node.js处理get请求

    下面的代码演示了node.js如何处理get请求,require相当于引入了内置的http模块,是内置的,不是第三...

  • Node模块之http模块(七)

    Node.js标准库提供了 http 模块,是Node.js中非常重要的一个核心模块。通过http模块,你可以使用...

  • Node.js与内置模块

    目录: 认识Node.js fs文件系统模块 path路径模块 http模块 认识Node.js 为啥JavaSc...

  • Node.js(七)HTTP模块http

    http是Node.js的核心模块之一,要使用http模块,需要:const http = require('ht...

  • Node.js 之 http模块

    http模块 引入http模块 开启一个本地服务器需要Node.js中http核心模块http--模块提供了搭建本...

  • http模块

    什么是http模块 http模块是Node.js官方提供的、用来创建web服务器的模块。通过 http模块提供的h...

网友评论

    本文标题:node.js的http模块实例演示

    本文链接:https://www.haomeiwen.com/subject/vwnfpftx.html