原生Node.js静态资源服务器的大致配置思想


注意:node-模块之间使用common.js规范,注意模块的引入与暴露
思想:静态资源服务器!

  • index.js:入口配置文件

---服务器,先起个服务,node内置http.createServer(),记得最后配置一个端口号
---获取浏览器请求的文件路径,http的内置参数(req.res) req.url 例如:/index.html
---获取当前服务器配置文件的绝对路径:用node内置方法__dirname获取当前文件夹绝对路径 ,在指向:拼接上静态资源文件夹的路径;
---上述两个路径用node内置path.join(注意join参数接收两个,是第二个参数拼接在第一个参数后面)进行拼接,及获取到服务器对应文件的绝对路径
---可以使用判断跳过favicon.ico的错误
---调用content.js文件,进行判断
---利用node内置path.extname()获取文件类型,及返回路径最后的文件后缀,如".html",再用slice(1),去掉第一个点;
---拿到文件类型,调用mine文件,查看mine文件中是否存在该文件类型
---不存在返回一个默认类型,存在则取出对应的解析类型 如:text/html
---为res,及向浏览器返回设置传出头,res.setHeader(('Content-Type', 上述返回的解析类型))
---在对解析类型进行判断,若是image,使用res.write(文件数据,'binary')返回浏览器请求的结果,否则直接res.write(文件数据)

  • content.js: 控制器

---使用node内置fs.existsSync(路径),判断当前路径是否存在
---fs.statSync(路径),返回值,对象,文件具体详情
---利用上面的返回值stat.isDirectory()判断是否是文件夹类型,在决定调用dir方法,还是file方法

dir.js 读取文件夹(可以返回html标签,并对当前文件返回具体内用)
---使用node内置fs.readdirSync(),读取当前路径下的所有文件夹,文件也当文件夹了,返回值是一个数组对象
---使用数组遍历方法Array.entries(entries() 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。)并用for of方法对其取出value值

  • file.js 读取文件

---使用node内置fs.readFileSync(文件路径)读取内容并返回

  • mine.js 判断类型使用
Last modification:July 24th, 2019 at 11:33 pm
同道中人,加个好友