千家信息网

如何用nodejs的http模块创建一个简单的静态资源服务器

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,本篇内容主要讲解"如何用nodejs的http模块创建一个简单的静态资源服务器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何用nodejs的http模
千家信息网最后更新 2025年01月25日如何用nodejs的http模块创建一个简单的静态资源服务器

本篇内容主要讲解"如何用nodejs的http模块创建一个简单的静态资源服务器",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何用nodejs的http模块创建一个简单的静态资源服务器"吧!

nodejs自问世以来,基于nodejs的web开发框架层出不穷,TJ大神的express和koa,阿里的egg,360大神李成银的thinkjs等等,这些框架是学不完的。

这些框架都是基于nodejs核心模块http模块封装而来的,只不过按照业务的不同,个人代码风的不同,产生了不同的框架,今天就带大家一起用nodejs的http模块封装一个简单的http静态服务器。

在开始写代码之前,我们首先要了解http的模型,http的模型是基于请求=》处理=》响应这样的一个过程。

nodejs将客户端向服务端发送请求的过程抽象成了一个事件,我们先用代码演示一下:

此时用node命令运行这个文件,就可以返回hello world,服务器启动了。

但是这个服务器,对任何请求都是返回hello world,功能太简单了,我们结合nodejs的另外一个核心模块个,fs模块,将其改装成静态资源服务器,代码如下:

此时,我们已经初步完成了,静态资源服务器的功能,貌似完成了,我们在www目录下新建一个index.html,然后测试访问以下服务器:

访问结果如下:

为什么是这样的呢?我们看响应头:

这里并没有给我们标识正确的mime响应头,我们该如何呢?

此时需要借助一个第三方包,mime,这个包有两个方法,一个是根据url的后缀获取请求文件的mime类型一个是根据mime类型判断文件后缀,显然我们需要第一种,官方文档演示代码如下:

服务器代码更改如下:

观察上面代码,我们引入了,mime模块,获取到了文件的mime类型,然后额外增加了一个判断,如何mime类型中包含text就追加编码格式为utf8,这样做是强制浏览器按照utf8模式解析文本数据,防止浏览器按照默认编码格式解析文本。

此时运行服务器,查看结果:

查看network的响应头:

查看红框中的内容,响应头已经被设置好了。

上面的代码中有个彩蛋不知道大家有没有注意到,res.writeheader方法不仅可以设置http规范的响应头,还可以设置自定义响应头,上图中小编设置了一个clm1100的响应头。

这次貌似又完成了,但是大家想想,如果静态文件很大,我在www放了一个avi的视频,上面的代码还能正常运行吗,这将avi的大小,如果avi大小超过服务器内存,恩,服务器挂掉了。

怎么解决呢?这里用到了nodejs里面另外一个东西,stream,流。看代码:

此时观察上面的代码,我们发现这次没有使用fs的readFile方法,而是换成了,fs.createReadStream方法,将文件转化成一个stream,然后将这个流用pipe连接到了res上,然后就直接输出到客户端了,这里读取文件的方式,就是读取一块响应一块,而不是一次性的读取了。关于stream的使用,咱们下篇文章在讨论。

到此,相信大家对"如何用nodejs的http模块创建一个简单的静态资源服务器"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

服务 服务器 代码 模块 静态 文件 资源 方法 框架 类型 不同 内容 面的 运行 功能 后缀 大小 大神 客户 客户端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界基岩版服务器黑名单指令 云服务器管理终端怎么进 网络安全怎么自学 4u服务器是什么样的电脑 成都市网络安全生态圈政策 服务器批量管理2013 网络安全法的核心制度 宿州软件开发培训哪家正规 一念逍遥服务器维护到什么时候 软件开发方法和软件模型异同 上海市大学网络安全 福通互联网科技有限公司 软件开发和开发有什么区别 QT电脑端软件开发 常规设备能力数据库 安检岗位如何加强网络安全 抚顺游戏软件开发 深圳佳镜互联网科技有限公司 江苏数据库日志审计平台 小白软件开发入门书籍 用数据库报表开发工具 邢台计算机网络技术本科学校 达梦数据库管理服务器在哪 数据库技术在行业上的应用 网络安全审查办法6号令 湘潭大学计算机学院网络安全 日志服务器是什么 眼镜行业软件开发一般哪家好 武汉讯网络技术有限公司 中兴数据南京软件开发二部
0