/static-server-demo

自己实现一个静态资源服务器

Primary LanguageJavaScript

  • create http server 创建与启动服务器,设置监听端口、主机地址等
  • handle request and response 包含如何获取请求体的相关信息(url...), 以及如何设置响应体,状态码、内容格式等
  • auto restart server with supervisor 使用一个第三方全局模块来监听代码文件的改动来自动重新执行启动脚本
  • path.join 根据平台选择特定的路径分隔符,连接多个路径片段生规范化路径地址
  • path.stat 查询地址的型态(文件还是目录)
  • promisify 优化异步调用写法
  • handlebarss 模版引擎渲染界面,渲染列表时,自动插值元素(有属性名则直接使用,否则使用this),访问上层作用域需要使用 ../variableName

整体思路

  • 选定静态资源目录
  • 以URL路径对应静态资源目录中的文件或子目录:解析到文件或子目录的路径地址
  • 读取路径地址的状态
  • 如果是文件,把该地址文件的读取流导至响应体对象
  • 如果是子目录,把该地址子目录的子文件列表在模版中展示出来 (标题为该子目录的文件夹名-path.basename,子文件的父目录为相对于静态资源目录的路径-也是req.url)