node中几个路径的梳理

  大半夜睡不着...

  今天用node写了返回客户端请求资源的http服务,确实发现了一些以前没注意到的问题。

  第一个是在接收到请求的时候,解析完路径后,一定要判断请求的文件的后缀,以便选择对应的Content-Type。

  第二个是要确保请求资源的路径正确。

 我今天犯了一个错误是,在这个单纯返回请求资源的http服务中,当匹配不到资源时,返回index.html.

  这就埋下了一个隐患:

      当我从index页面通过location.href跳转到B页面时,由于判断后缀的switch语句中漏了对.html类型的判断,导致B页面直接返回了index.html,而此时B页面的路径是/B.html。

      而B页面i拿到的ndex文档中的link标签发起css请求时,请求的路径在/B.html的基础上变成了/B/css/b.css,正确的地址应该是/css/b.css。node程序因此抛出错误而退出。

  在调试的过程中,我也梳理了node中常见的几个路径:

__dirname:被执行的js文件所在文件夹;

__filename:被执行的JS的绝对路径。

process.cwd():运行node命令时所在文件夹的绝对路径。

同时也有前辈指出只有在 require() 时才使用相对路径(./, ../) 的写法。

参见:https://github.com/imsobear/blog/issues/48

原文地址:https://www.cnblogs.com/alan2kat/p/7659152.html