前言

  • node.js v12.18.2
  • 用 node.js 实现目录浏览服务 (http-server实现,serve实现)
  • 前提,已经按照好Node.js

编码实现

  1. 创建项目
    找个自己喜欢的位置,创建个目录,起名为dirService
  2. 初始化项目
npm init
  1. 安装相关插件
npm install connect@3.7.0 http@0.0.1-security st@2.0.0 --save-dev
  • 因为用到了connect.static,所以需要指定版本。
  1. 编写脚本 index.js
var connect = require('connect');
var http = require('http');
var st = require('st');
var port = 8000;var mount = st({path: 'static',cache: true});
var app = connect().use(mount);
http.createServer(app).listen(port);console.log('server start done.');
console.log('port is ' + port);
  1. 启动脚本 index.js
shell> node index.js
server start done.
port is 8000
  1. 查看效果

另一个写法

var http = require('http');
var st = require('st');
var port = 8000;var mount = st({path: 'static',cache: true});
http.createServer(function (req, res) {if (mount(req, res)) return;
}).listen(port);console.log('server start done.');
console.log('port is ' + port);

又一种写法

var connect = require('connect');
var st = require('st');
var port = 8000;var mount = st({path: 'static',cache: true});
var app = connect().use(mount);
app.listen(port);console.log('server start done.');
console.log('port is ' + port);

用 express 的写法

var express = require('express');
var st = require('st');
var port = 8000;var app = express();
var mount = st({path: 'static',cache: true});
app.use('/', mount);
app.listen(port);console.log('server start done.');
console.log('port is ' + port);
  • 这个写法需要安装 express 组件 : npm install express@4.17.1 --save-dev

关于错误 Cannot GET /

尝试获取静态资源时,使用了下面的方式:

  • connect 组件的 connect.static(directory) (需要换用 connect 2.x 版本)
  • serve-static 组件的 serveStatic("./")
  • express 组件的 express.static(__dirname + '/public')

均在访问时出现错误 Cannot GET /
目前看 st 组件好用。

关于版本

不同的版本会有实现上的变动,比如 connect 组件在 3.0 时去掉了 connect.static()
因此,取最新版本的组件不能保证代码顺利执行。
尽量指定组件的版本。

关于空目录

空目录打开异常(无响应)。
非空目录打开正常。

参考

https://stackoverflow.com/questions/9627441/cannot-get-with-connect-on-node-js
https://stackoverflow.com/questions/16333790/node-js-quick-file-server-static-files-over-http/24575241#24575241?newreg=f45f9198b20d4fc69d86e009ee614
https://www.npmjs.com/package/st

【Node.js】编码实现目录浏览服务相关推荐

  1. 【Node.js】serve 实现目录浏览服务

    前言 node.js v12.18.2 用 node.js 实现目录浏览服务 (http-server) 前提,已经按照好Node.js serve 官网:https://www.npmjs.com/ ...

  2. 【Node.js】http-server 实现目录浏览服务

    前言 node.js v12.18.2 用 node.js 实现目录浏览服务 前提,已经按照好Node.js http-server 官网:https://www.npmjs.com/package/ ...

  3. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  4. node.js中net网络模块TCP服务端与客户端的使用

    node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net');//创建一个tcp服务 //参数一表示创建服 ...

  5. 使用 Node.js 实现文件流转存服务

    作者:董天成 原文地址: https://zhuanlan.zhihu.com/p/25367269 本文你能学到的有关Javascript和Node.js的知识点 Buffer Stream set ...

  6. Node.js 指南(目录)

    Node.js 指南 Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时. 常规 关于Node.js 入门指南 轻松分析Node.js应用程序 Dock ...

  7. 小程序 timestamp_通过构建Timestamp微服务应用程序来学习Node.js

    小程序 timestamp by Ayo Isaiah 通过Ayo Isaiah 通过构建Timestamp微服务应用程序来学习Node.js (Learn Node.js by building a ...

  8. nock模拟服务响应_使用Node.js nock拦截HTTP请求

    nock模拟服务响应 Unit testing external APIs is difficult no matter what language you do it in.  Hell, work ...

  9. Node.js的环境搭建方法和 npm 的使用方法

    Node.js的环境搭建方法和 npm 的使用方法 Node.js 环境的搭建 Node.js 介绍 Node.js 下载 配置Node.js node.js 测试 npm(包管理器)使用方法 npm ...

最新文章

  1. centos losf 安装_Linux Centos7部署环境安装-CentOS
  2. 下一代Asp.net开发规范OWIN(2)—— Katana介绍以及使用
  3. Eclipse 设置自动导包
  4. iText 生成复杂表格
  5. 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
  6. 编解码器的学习笔记(十):Ogg系列
  7. HANA中SQL之truncate 、delete与drop区别
  8. 自定义日历控android,android 一个简单的自定义日历控件,让你掌控时间
  9. 仿宋GB_2312字体在wps,office中的安装下载使用
  10. cad线性标注命令_CAD线性标注快捷键是什么,怎么使用
  11. python菜鸟教程 | 素数
  12. 深度学习软件安装及环境配置(Win10)
  13. pycharm免费版下载压缩包(有需要的自取)
  14. 关于ppp、PPPoE、PPTP、L2TP、IPSec协议的简单认识
  15. 英语绕口令大全 练习你的口语
  16. 《弃子长安》第六章 九煞夺命
  17. 如何在C ++ 中分割PDF档案?试试Aspose
  18. 相伴十六载,讲讲我和数据仓库的故事(一)
  19. 游戏辅助制作核心--植物大战僵尸逆向之植物种植call(七)
  20. 基于pynput的微信刷屏代码

热门文章

  1. word2vec中文类似词计算和聚类的使用说明及c语言源代码
  2. 爱屋及乌 年轻投资者因喜爱Snapchat亏钱也买Snap股票
  3. 服务器端与客户端TCP连接入门(三:多线程)
  4. OC学习之面向对象三大特征
  5. C#中的DateTime:本周,本月,今年,本周
  6. C++中如何定义某个数组的引用?
  7. IIS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求...
  8. 为何要领域驱动设计?
  9. 减少图片HTTP 请求的方案
  10. java中集合的结构Set类型