500字范文,内容丰富有趣,生活中的好帮手!
500字范文 > 利用Nodejs 构建 WEB服务器

利用Nodejs 构建 WEB服务器

时间:2023-10-31 19:03:05

相关推荐

利用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-8res.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.htmlvar pathname = url.parse(req.url).pathname; //通过url.parse()直接获取请求的数据路径// 过滤请求if (pathname == '/') {pathname = 'index.html'; //默认加载首页}// 获取文件的后缀名,根据不同的后缀名返回不同的信息var extname = path.extname(pathname);if (pathname != '/favicon.ico') {// 通过文件操作来获取static下面的index.htmlfs.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 成长顺利!

参考

node.js 学习社区node.js 专业中文社区

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。