node.js+anywhere构建静态文件服务器
node.js安装
- windows
直接下载exe文件或着.msi安装包。创建D:\nodejs目录,并将node.exe保存在这个目录中。并将”D:\nodejs”加入系统环境变量PATH中,便于在任意位置执行node.exe
node -v
查看版本
- Linux
下载Node.js源代码,解压,进入目录,编译安装,node -v
查看版本。
./configure
make
sudo make install
npm安装
npm全名为Node Package Manager,是Node.js 的套件(package)管理工具,安装npm 后,使用npm install module-name
指令即可安装新套件。基本命令如下:
npm -v #显示版本,检查npm 是否正确安装。
npm install xxx #安装模块
npm install xxx -g #将模块安装到全局环境中
npm uninstall XXX (-g) #删除指定的模块
npm rm XXX (-g) #删除指定的模块
npm cache clean #清理缓存
npm ls #查看安装的模块及依赖
npm ls -g #查看全局安装的模块及依赖
npm list #列出已安装模块
npm show XXX #显示模块详情
npm update #升级所有套件
npm update XXX #升级指定的模块
- windows
下载zip文件解压到node.exe所在目录中。运行npm.cmd
npm -v
查看版本
- Linux
anywhere安装使用
anywhere随时随地将你的当前目录变成一个静态文件服务器的根目录。
安装npm install anywhere -g
,然后进入任意目录在cmd下运行即可把该目录变成静态文件服务器的根目录(比apache简单多了)。例如可以本地编译本博客后进入_site文件夹,运行anywhere就可启动web服务。
anywhere
// or with port
anywhere 8000
node.js编写web服务器
node.js可以用javascript建立简单web服务器,可学习下下面三个博客:
1、Node.js静态文件服务器实战
2、node.js入门—-静态文件服务器
3、学习NodeJS第七天:安装静态的文件服务器
其中我用本博客的_site来测试第二篇的代码时,Url解析有问题,主要是我的博客命名规则是a+b.html包含了特殊字符,当url请求中将+号转义成%2B,但是在本地html文本中没有这个名字,故需要在app.js中添加一句转义。同时以后的.md博客命名还是不要包含转义字符了。
pathname = pathname.replace(/\%2B/g, '+');//用来转义URL中特殊字符+
url特殊字符
URL特殊符号及对应的十六进制值编码:
- + 表示空格 %2B
- 空格 用+号或者编码 %20
- / 分隔目录和子目录 %2F
- ? 分隔实际的URL和参数 %3F
- % 指定特殊字符 %25
- # 表示书签 %23
- & URL中指定的参数间的分隔符 %26
References
[1] google