node-静态资源文件请求

代码精灵
• 阅读 4538

node-静态资源文件请求

一、node环境的搭建

1、在js的全栈开发中服务器端依赖于node环境,所以首先需要搭建一个node环境,才能够剑气我们的服务器。从官网上下载相应的安装包之后,直接安装即可(建议安装稳定版本),之后更新node可以直接使用命令行工具进行更新,但是在window系统下比较麻烦。
2、创建一个node服务器项目,先创建一个项目文件,然后在文件夹中使用npm init去初始化我们的项目,然后根据命令行的提示去描述我们的项目,最后输入 ‘yes’后会自动创建一个package.json的文件。这一步结束之后,node的环境算是搭建完成了,可以在官网上查看node的文档来对node模块加深理解。

node-静态资源文件请求

二、node之http模块搭建服务

1、首先在我们的定义的服务文件server.js中导入http、url、fs模块,
node中的http模块是专用于创建http服务器、http客户端,以及同时实现这些服务器端与客户端之中所有需求进行的所有处理
2、定义一个变量来创建一个服务
var server = http.CreateServer([requestListener])
其中requestListener是一个函数,会被自动添加到‘request’事件,用户指定当接收到客户端请求时所需要执行的处理,该回调函数的指定方法如下
function (request, response) { … }
在此回调函数中,使用两个参数,第一个参数是request是http的IncomingMessage对象,表示客户端请求, 第二个参数是respons是http的ServerResponse对象,表示服务端响应对象。
3、服务器所要监听的地址及端口
server.listen(port, [host],[backlog],[call])
listen有四个参数,其中post是用于指定要监听的端口号,是必填的,当port的参数值为0时,将为http服务器分配一个随机端口号。其余三个参数为可选参数,host用于指定需要监听的地址,如果省略,服务器将监听localhost,backlog是一个整数值,用于指定位于等待队列中的客户端连接的最大数量,callback是一用来指定listening事件触发时调用的回调函数。

var server = http.createServer(function(request, response) {
    console.log("服务器已打开") 
}
server.listen(1234, iptable["WLAN:1"], function() {
  console.log("监听的服务器是:" + iptable["WLAN:1"] + ":1234");
});

node-静态资源文件请求

三、node之url获取路径中的文件名称

1、比如,我们有一个url地址是: localhost:8080/index.html
index.html就是一个保存在我们本机上面的一个静态文件。
可以先通过node的url模块来获取到我们的路径名称里的文件名。
一个URL字符串是一个结构化的字符串对象,它包含多个有意义的组成部分。当被解析时,会返回一个url对象,它包含每个组成部分作为属性。下图是url的对象包含的属性

node-静态资源文件请求

url中有一个parse方法,就是能够将url地址进行解析
Url.parse(url.String [, parseQuryString[, slashesDenoteHost]])
第一个参数是urlString要解析的URL字符串,parseQuryString是一个布尔值,如果为true会将查询到的query返回解析成一个对象,slashesDenoteHost也是一个布尔值,如果为true的话则 // 之后至下一个 之前的字符串会被解析作为 host。 例如,//foo/bar 会被解析为 {host: 'foo', pathname: '/bar'} 而不是 {pathname: '//foo/bar'}。 默认为 false。
这是通过本机获取到的url对象,url中包含:

protocal是一个协议l(http、https)
host为主机名+端口号
port为端口的名称
hash是哈希值
search是查询的参数并带有‘?’
query是查询到的参数
pathname是请求文件的路径及名称
path是请求文件的路径名称及查询的参数
href是一个完整的地址

但是如果解析客户端请求的地址的时候,url是无法完全解析的,url只能解析一个完整的地址,还有一种可以解析完整的url就是使用express插件。

node-静态资源文件请求

四、node之fs模块获取文件

1、对于fs模块中获取文件地的主要方法是使用readFileSync和readFile,两个方法都需要传输路径和回调函数
fs.readFile(path[.options],callback]
异步获取文件方法,该方法立即返回操作结果,在使用同步方法执行的操作结束之前,不能执行后续的代码,在异步中还有一个传递编码格式的可选参数。
fs.readFileSync(path, callback]
同步获取文件方法,该方法将操作结果作为回调函数的参数进行返回,在方法调用之后,可以立即执行后续的代码
然后文件有许多的后缀,如html、css、js、png等等,这些文件类型在MIME中可以查看。

// 通过异步方法获取文件
    fs.readFile('.'+pathname, 'utf8',function(err, data){
        if(err) {
            response.writeHead(
                404,
                {'Content-Type': 'text/plain'}
            )
            console.log("require file is not find")
        } else{
            response.writeHead(
                200,
                {'Content-Type': suffixMIME + ';charset=utf-8'}
            )
            response.end(data)
        }
    })

启动node,在浏览器地址中输入ip+端口+文件名,效果如图所示

node-静态资源文件请求

点赞
收藏
评论区
推荐文章
小嫌 小嫌
3年前
Node.js学习笔记
什么是Node.js文件?Node.js文件包含将在特定事件上执行的任务一个典型的事件是有人试图访问服务器上的端口Node.js文件必须在服务器上启动才能生效Node.js文件的扩展名为“.js”Node.js文件应当如何执行推荐使用各种类型的编译器生成一个空白的nodedemo.js文件,在文件中输入下面的内容:varhttprequi
Easter79 Easter79
3年前
Vue 学习记录(一)
环境准备1.node.js  2.vuecli安装配置环境1.下载node.js,使用默认配置安装。2.使用npm命令安装国内下载镜像(可选)  cmd:  npminstall g cnpm registryhttps://registry.npm.taobao.org  tips:在命
diuidu diuidu
4年前
Vue 从安装到创建项目
1.安装Node可以直接在官网中下载安装默认自动安装Node和NPM(NodePackageManager)完成后检查安装版本:nodevnpmv2.安装webpackwebpack全局安装npminstallwebpackg3.安装vue脚手架全局安装脚手架3npminstall@vue/clig备注
Stella981 Stella981
3年前
Linux常用环境安装
node环境安装 更新ubuntu软件源sudoaptgetupdate 安装nodejssudoaptgetinstallnodejssudoaptinstallnodejslegacysudoaptinstallnpm更新npm源
Wesley13 Wesley13
3年前
vs2015中electron开发入门 01
安装vs2015插件\node.jsTools\1.在vs工具扩展更新,查找node关键字,找到如图!node.jsTools(https://static.oschina.net/uploads/img/201605/23225301_AcB3.png"node.jsTools")2.下载安装插件创建项目
Stella981 Stella981
3年前
Kafka集群环境配置
Kafka集群环境配置1环境准备1.1集群规划Node02Node03Node04zkzkzkkafkakafkakafka1.2jar包下载安装包:kafka\_2.110.8.2.1.tgz下载地址:http://kafka.apache.org/downl
Stella981 Stella981
3年前
NodeJs在windows上安装配置测试
Node.js简介简单的说Node.js就是运行在服务端的JavaScript。Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。Node.js的包管理器npm,是全球最大的开源库生态系统。安装环境本机系统:Windo
Stella981 Stella981
3年前
Node.js 中使用 ECDSA 签名遇到的坑
文/Fenying最近有个朋友问我关于Node.js下使用ECDSA的问题,主要是使用Node.js的Crypto模块无法校验网络传输过来的签名结果。在踩坑无数后,终于搞清楚了原因。坑0x00:签名输出格式在排除了证书、消息不一致的可能之后,我开始对比使用Node.js签名的结果与网络传输过来的签
Stella981 Stella981
3年前
NVM、NPM、Node.js的安装选择
在安装和使用这三种工具时,我们有很多方式可以选择,这些方法各有优劣,每个人都有自己用起来比较习惯的配置,所以我在这里记录下自己比较习惯的一种安装方式与其他一些可能的选项。NVM、NPM、Node.js的关系假定我们的最终目的是为了安装并使用Node.js,那么我们有两种常规的选择:Node.js安装包
玩转服务器之网站篇:新手使用WordPress搭建博客和静态网站部署
在之前的玩转服务器系列文章里,我们介绍了如何构建小型的高可用环境、PHP、Python、Javaweb、docker环境部署,以及Node.jsSSR应用,本篇文章主要介绍新手也能快速上手的WordPress博客搭建和静态网站部署的教程
马尚 马尚
1年前
使用 Puppeteer 破解知乎滑块验证码
我们将使用Puppeteer(一个基于Chrome的Node.js库)来自动填写知乎的账号和密码,并尝试破解知乎的滑块验证码。首先,我们需要安装Puppeteer:bashnpminstallpuppeteer接下来,创建一个新的Node.js文件,例如z
代码精灵
代码精灵
Lv1
愿山野浓雾都有路灯,风雨漂泊都有归舟。
文章
8
粉丝
0
获赞
0