与Python的SimpleHTTPServer,Node.js的serve不同,serve2是一个支持动态文件的工具,前者们只支持静态文件,而serve2支持编写代码动态处理和返回http请求。
常常我们可能会有这样的需求场景:无论是在开发时还是尝试某个框架时,往往需要处理请求参数、Cookies、Httpheaders等,这样简单的静态文件服务器便无法满足这种需求了。
于是serve2便应运而生了,基于Tj的serve开发,使用起来跟一般的静态文件服务器相同,执行一条命令即可。详细的用法介绍如下。
1.下载安装npm install -g serve22.使用运行λserve2--help Usage:serve2[options][dir] Options: -h,--help outputusageinformation -V,--version outputtheversionnumber -a,--auth<user>:<pass> specifybasicauthcredentials -F,--format<fmt> specifythelogformatstring -p,--port<port> specifytheport[3000] -H,--hidden enablehiddenfileserving -S,--no-stylus disablestylusrendering -J,--no-jade disablejaderendering --no-less disablelesscssrendering -I,--no-icons disableicons -L,--no-logs disablerequestlogging -D,--no-dirs disabledirectoryserving -f,--favicon<path> servethegivenfavicon -M,--mocks<path> mockfilesdirectory --cookies addcookiesparsesupport -C,--cors allowscrossoriginaccessserving --compress gzipordeflatetheresponse --exec<cmd> executecommandoneachrequest 3.模拟后端准备一个文件夹,如mock,然后启动的时候用-M参数指定。此目录下即为动态文件目录,可以模拟后端请求处理。如:
// mock/test.js module.exports = function(req, res, next) { var query = req.query; var reqBody = req.body; // ... res.end(query.hi);}则请求:
https://localhost:3000/test?hi=hello
https://localhost:3000/test.js?hi=hello
都将返回hello。js文件中的函数即是connect的中间件函数形式。
另外,也可以是json或其它文本文件,甚至可以是目录:
4.代理功能当某个HTTP请求我们希望转发给服务器来处理时,可以在工作目录下创建一个文件名为proxylist.json,内容格式如下:
{ "/": "https://www.baidu.com", "/t/180521": "https://www.v2ex.com" }启动serve2后访问https://localhost:3000/,请求即会被proxy到baidu.com。
评论