利用Nodejs 构建 WEB服务器

前言

Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以_向浏览器等 Web 客户端提供文档_,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个 Web 服务器是 Apache Nginx IIS。废话不多说,来看看本次分享 都有哪些亮点吧!

一、Nodejs 构建简单的 WEB 服务器

关键词:Web服务器 Node.js

1. 引入 HTTP 模块

const http = require('http')

2. 用 HTTP模块 创建服务

const Server=http.createServer((req,res)=>{
    // 发送 HTTP 头部
    // HTTP 状态值: 200 : OK
    //设置 HTTP 头部,状态码是 200,文件类型是 html,字符集是 utf-8
    
    res.writeHead(200,{"Content-Type":"text/html;charset='utf-8'"});
    
    res.write('你好 nodejs');
    
    res.write('我是第一个 nodejs 程序');
    
    res.end(); /*结束响应*/
})

Server.listen('8001')

3. 用HTTP模块、fs模块、url模块、path模块来搭建一个静态web服务器

/* 
    通过nodejs 中的  
    HTTP模块、URL模块、fs模块、Path模块
    来构建静态资源服务器
*/
// 引入HTTP模块来创建web服务器
var http = require('http')
    // 引入fs模块来进行文件操作
var fs = require('fs')
    // 引入path模块,可以拿到请求文件的后缀名
var path = require('path')
    // 引入url模块来处理请求的数据
var url = require('url')

// 引入自定义模块,获取`得到后缀名`的函数

var mimeModel = require('./model/getmime.js');

http.createServer((req, res) => {


    // res.write('hello node.js')
    // http://localhost:8001/news.html       /news.html
    // http://localhost:8001/index.html      /index.html

    var pathname = url.parse(req.url).pathname;   //通过url.parse()直接获取请求的数据路径

    // 过滤请求
    if (pathname == '/') {
        pathname = 'index.html'; //默认加载首页
    }
    // 获取文件的后缀名,根据不同的后缀名返回不同的信息
    var extname = path.extname(pathname);

    if (pathname != '/favicon.ico') {

        // 通过文件操作来获取static下面的index.html

        fs.readFile('./创建WEB服务器/static/' + pathname, (err, result) => {

            if (err) {
                fs.readFile('./创建WEB服务器/static/404.html', (error, data) => {
                    if (error) {
                        console.log(error)
                        return
                    }
                    res.writeHead(404, { "Content-Type": "text/html;charset='utf-8' " });

                    res.write(data);
                    res.end() //结束响应
                })
            } else {
                // 这就实现了最基本的静态web服务

                // 响应头
                var mime = mimeModel.getMime(extname); //获取文件类型
                res.writeHead(200, { "Content-Type": "" + mime + ";charset='utf-8' " });

                res.write(result);
                res.end() //结束响应
            }
        })


    }

}).listen(8001)

结语

OK,这次的 分享到这就结束了,虽然看起来构建WEB静态资源服务器简单,但是也需要动手练习才能😜有更深刻的理解,助你 o( ̄▽ ̄)o 成长顺利!

参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值