开发中使用 hosts 司空见惯,但如果一个需求,用户表单输入 hosts 后台使用这个 hosts 去请求,如何用正确的姿势去请求呢?
如果每次都修改 hosts 文件,那,,也许,,不太科学,如果是个临时 hosts 呢?hosts 文件会越来越臃肿,不推荐。
在百度,谷歌无果后 (也许关键词不对,反正没找到),自己尝试了下,却发现异常简单。
hosts demo
假设我们要添加如下临时 hosts:
1 | 192.168.1.10 dev.domain.com |
node 代码如下:
1 | const http = require('http'); |
保存为 test.js
后执行:
1 | $ node test.js |
即可在控制台看到执行结果。
这里为了偷懒,直接将结果 pipe 到控制台了。
使用 got 模块
当然,为了 hosts 而重新手写封装请求,简直不能忍,所以推荐 got 模块,这是一个非常优雅的 node request 模块。
1 | const got = require('got'); |
结合 async/await
简直爽的不要不要的。
小结
原理嘛,其实就是服务器是根据请求头(headers)里的 host 是字段来匹配具体访问哪一个web服务。
所以只要指定请求的服务器 IP
+ headers.host
即可访问指定 IP 下指定的 web 服务。
1 | const http = require('http'); |
如果是这个例子,也许就好理解了。
真心不理解也无所谓,反正简单,能用,就好了。