由于不做php相关的东西,懒得装apache,干脆利用nodejs搭建一个本地的服务器用于测试。
nodejs这玩意儿吧,对做前端的介入后端简直就是一把利器。而且目前,nodejs也越来越有商用价值。
nodejs其实是非常底层的,从功能上说,它既是apache也是php。像搭建http服务器这种功能,本来是apache已经封装好的,但nodejs需要我们手动来搭建。其实在实际应用中,我们可以使用现成的框架。但这里,我想手动搭建,也加深一下对http服务器的理解。
我们node执行下面这个文件,我命名为http.js,它将创建一个httpServer并监听3000端口。
http.js
1 | var PORT = 3000; |
上面我们还引入了一个mine.js,这是我自己写的,里面存储的是名值对,用于定义不同后缀的文件所对应的返回方式:
1 | exports.types = { |
fs 模块是用于读取文件的,提供读取文件的方法,其实仔细研究文档会发现,它有同步和异步两种读取方式。
fs.exists 这个方法网上很多文章写作 path.exists,现在推荐写作 fs.exists 这个方法。
否则会报警:
1 | path.exists is now called `fs.exists`. |
需要注意的是,不仅浏览器访问 html 文件会形成一次访问,里面链接的 js,css 等外部文件也会分别形成一次 http 访问。
所以,http.createServer 的回调其实是在一次页面访问中执行了多次的。
我们 console.log(realPath) 一下就可以看到:
1 | ➜ orzhtml.inner node https.js |
关注 web翎云阁,定时推送,互动精彩多,若你有更好的见解,欢迎留言探讨!
本作品采用 知识共享署名 3.0 中国大陆许可协议 进行许可,分享、演绎需署名且使用相同方式共享。转载请务必保留本页网址和作者信息,否则即为侵权。