使用node 做静态文件服务器
# 1. 使用server-static 包
使用node可以非常快速的方法把指定目录共享出去
前提条件:安装了node,附带有npm
要托管的文件目录为 /root/www
# 先创建一个目录用来存放脚本和依赖包
$mkdir nodeser && cd nodeser
# 初始化项目,一路按enter使用默认值
$npm init
# 安装connect 包和 serve-static 包
$npm install connect --save
$npm install serve-static --save
然后编辑服务脚本ser.js
var connect = require("connect");
var serveStatic = require("serve-static");
var app = connect();
app.use(serveStatic("/root/www"));
app.listen(5000);
在当前目录执行 node ser.js
然后可以在浏览器上访问5000 来请求静态资源

# 2. 使用http-server 0配置实现一个 ftp server
1. mkdir ftpdir && cd ftpdir 创建项目目录
2. 先执行npm init 初始化一个项目,会生成 package.json
```
npm init
```
3. 安装http-server 包
```
npm install http-server
npm WARN prefer global http-server@0.11.1 should be installed with -g
nodeser@1.0.0 /home/builder/nodeser
└─┬ http-server@0.11.1
├── colors@1.0.3
├── corser@2.0.1
├─┬ ecstatic@3.3.2
│ ├── he@1.2.0
│ └── url-join@2.0.5
├── opener@1.4.3
├─┬ optimist@0.6.1
│ ├── minimist@0.0.10
│ └── wordwrap@0.0.3
├─┬ portfinder@1.0.24
│ └── async@1.5.2
└─┬ union@0.4.6
└── qs@2.3.3
```
4. 编辑package.json ,修改启动方式
```
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "http-server -p 5000"
},
```
这里的 script 其实是提供给 npm 调用的,例如 当执行npm start 的时候就会调用 start 里的内容
所以也是可以直接执行 `http-server -p 5000` 启动,另外还有一些参数可以参考
```
Available Options:
-p Port to use (defaults to 8080)
-a Address to use (defaults to 0.0.0.0)
-d Show directory listings (defaults to 'True')
-i Display autoIndex (defaults to 'True')
-g or --gzip When enabled (defaults to 'False') it will serve ./public/some-file.js.gz in place of ./public/some-file.js when a gzipped version of the file exists and the request accepts gzip encoding.
-e or --ext Default file extension if none supplied (defaults to 'html')
-s or --silent Suppress log messages from output
--cors Enable CORS via the Access-Control-Allow-Origin header
-o Open browser window after starting the server
-c Set cache time (in seconds) for cache-control max-age header, e.g. -c10 for 10 seconds (defaults to '3600'). To disable caching, use -c-1.
-U or --utc Use UTC time format in log messages.
-P or --proxy Proxies all requests which can't be resolved locally to the given url. e.g.: -P http://someurl.com
-S or --ssl Enable https.
-C or --cert Path to ssl cert file (default: cert.pem).
-K or --key Path to ssl key file (default: key.pem).
-r or --robots Provide a /robots.txt (whose content defaults to 'User-agent: *\nDisallow: /')
-h or --help Print this list and exit.
```
5. 启动
```
npm start
> nodeser@1.0.0 start
> http-server -p 5000
Starting up http-server, serving ./
Available on:
http://127.0.0.1:5000
http://192.168.4.5:5000
http://192.168.4.41:5000
```
当然还可以使用 `http-server -p 5000` 直接启动
6.效果

如果是文件夹可以点进去,如果是文件则直接打开,非常方便

使用node 做静态文件服务器的更多相关文章
- Node.js静态文件服务器实战[转]
p.s. 在下面这篇文章的指导下,做了一个静态文件服务器,见:https://github.com/walkerwzy/node_static_server ==== 这是一篇阐述得比较详细的文章,从 ...
- 用node搭建静态文件服务器
占个坑,写个node静态文件服务器
- Node.js静态文件服务器
首先还是先感谢github,感谢github上提供此段源码的作者.跟昨晚看的静态文件服务器来比今天的静态文件服务器稍微复杂些,可以学到很多新的东西.仔细会发现这次的代码多了一个fs.stat函数和Re ...
- [Nodejs] node实现静态文件服务器
node 静态文件处理 一般后端进行静态文件处理都是使用 Apache nginx 等静态 web 服务器,但是既然使用 node 了,就用 node 实现以下静态服务器吧. 之前弄了不少充满艺术的数 ...
- 使用Node.js快速搭建简单的静态文件服务器
做前端有时会采用一些复杂框架,在文件系统中直接打开页面(用file:///方式打开),往往会报跨域的错,类似于“XMLHttpRequest cannot load ...(文件名). Cross o ...
- Node.js Web 开发框架大全《静态文件服务器篇》
这篇文章与大家分享优秀的 Node.js 静态服务器模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能 ...
- [转载]用NodeJS打造你的静态文件服务器
http://www.open-open.com/bbs/view/1321344823593 本文是我对V5Node项目的总结,该项目的特性包括: 项目大多数的文件都是属于静态文件,只有数据部分存在 ...
- 从零开始,在windows上用nodejs搭建一个静态文件服务器
从零开始,在windows上用nodejs搭建一个静态文件服务器 首先安装nodejs: 新建一个node文件夹 下载node.exe到该文件夹 下载npm然后解压到该文件夹 现在node文件夹是这样 ...
- 用http-server 创建node.js 静态服务器
今天做一本书上的例子,结果代码不能正常运行,查询了一下,是语法过时了,书其实是新买的,出版不久. 过时代码如下 var connect=require('connect'); connect.crea ...
随机推荐
- Tyvj1952 Easy
%%http://hzwer.com/2838.html 比较巧妙的是原来L^2->(l+1)^1=L^2+2*L+1这样就可以递推了 “?”的贡献及时“o”贡献的1/2. #include&l ...
- Linux 正则表达式与文本处理器 三剑客
Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...
- Mybatis之配置文件
Mybatis_config.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE conf ...
- Shell脚本exit用法与区别
在Shell脚本中,往往会遇到一些判断类型为某个值不符合预期值的时候就退出主脚本/当前脚本/当前函数,那么Exit与return的用法与区别是什么呢? 下面先使用Exit举个简单例子,脚本内容如下 # ...
- Docker安装 - CentOS7环境
Docker安装 - CentOS7环境 安装Docker 我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核 ...
- preg_match()//explode()// 输出函数//assert()//trim()
1.preg_match() 这是一个正则表达式匹配的函数,其用法如下: 查找文本字符串"php": <?php //模式分隔符后的"i"标记这是一个大小 ...
- echart曲线图标识最大值、最小值、平均值
option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAx ...
- sublime中设置scala编译运行
Attention: 前提.前提.前提:电脑上安装scala和jdk,可以在cmd中运行scala命令: okay,next: 1.配置内容 在Tools->Build Systems-> ...
- Html4.0.1 标签使用笔记
1.lang=zh,en有什么用? 告诉搜索引擎爬虫,网站是关于什么内容的,优先显示网站排名.一般竞价排名,根据百度搜索引擎,需要签订关键词协议,首页第一个竞价排名大概是30-50元/条,竞价排名范围 ...
- 01Java-方法
一:动手动脑 1.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数 package reserve; import java.util.Scanner; import java.ut ...