【Node.js】编码实现目录浏览服务
前言
- node.js v12.18.2
- 用 node.js 实现目录浏览服务 (http-server实现,serve实现)
- 前提,已经按照好Node.js
编码实现
- 创建项目
找个自己喜欢的位置,创建个目录,起名为dirService
- 初始化项目
npm init
- 安装相关插件
npm install connect@3.7.0 http@0.0.1-security st@2.0.0 --save-dev
- 因为用到了
connect.static
,所以需要指定版本。
- 编写脚本
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);
- 启动脚本
index.js
shell> node index.js
server start done.
port is 8000
- 查看效果
另一个写法
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】编码实现目录浏览服务相关推荐
- 【Node.js】serve 实现目录浏览服务
前言 node.js v12.18.2 用 node.js 实现目录浏览服务 (http-server) 前提,已经按照好Node.js serve 官网:https://www.npmjs.com/ ...
- 【Node.js】http-server 实现目录浏览服务
前言 node.js v12.18.2 用 node.js 实现目录浏览服务 前提,已经按照好Node.js http-server 官网:https://www.npmjs.com/package/ ...
- node.js中ws模块创建服务端和客户端,网页WebSocket客户端
首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...
- node.js中net网络模块TCP服务端与客户端的使用
node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口. 一.创建服务器并监听端口 const net = require('net');//创建一个tcp服务 //参数一表示创建服 ...
- 使用 Node.js 实现文件流转存服务
作者:董天成 原文地址: https://zhuanlan.zhihu.com/p/25367269 本文你能学到的有关Javascript和Node.js的知识点 Buffer Stream set ...
- Node.js 指南(目录)
Node.js 指南 Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时. 常规 关于Node.js 入门指南 轻松分析Node.js应用程序 Dock ...
- 小程序 timestamp_通过构建Timestamp微服务应用程序来学习Node.js
小程序 timestamp by Ayo Isaiah 通过Ayo Isaiah 通过构建Timestamp微服务应用程序来学习Node.js (Learn Node.js by building a ...
- nock模拟服务响应_使用Node.js nock拦截HTTP请求
nock模拟服务响应 Unit testing external APIs is difficult no matter what language you do it in. Hell, work ...
- Node.js的环境搭建方法和 npm 的使用方法
Node.js的环境搭建方法和 npm 的使用方法 Node.js 环境的搭建 Node.js 介绍 Node.js 下载 配置Node.js node.js 测试 npm(包管理器)使用方法 npm ...
最新文章
- centos losf 安装_Linux Centos7部署环境安装-CentOS
- 下一代Asp.net开发规范OWIN(2)—— Katana介绍以及使用
- Eclipse 设置自动导包
- iText 生成复杂表格
- 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
- 编解码器的学习笔记(十):Ogg系列
- HANA中SQL之truncate 、delete与drop区别
- 自定义日历控android,android 一个简单的自定义日历控件,让你掌控时间
- 仿宋GB_2312字体在wps,office中的安装下载使用
- cad线性标注命令_CAD线性标注快捷键是什么,怎么使用
- python菜鸟教程 | 素数
- 深度学习软件安装及环境配置(Win10)
- pycharm免费版下载压缩包(有需要的自取)
- 关于ppp、PPPoE、PPTP、L2TP、IPSec协议的简单认识
- 英语绕口令大全 练习你的口语
- 《弃子长安》第六章 九煞夺命
- 如何在C ++ 中分割PDF档案?试试Aspose
- 相伴十六载,讲讲我和数据仓库的故事(一)
- 游戏辅助制作核心--植物大战僵尸逆向之植物种植call(七)
- 基于pynput的微信刷屏代码
热门文章
- word2vec中文类似词计算和聚类的使用说明及c语言源代码
- 爱屋及乌 年轻投资者因喜爱Snapchat亏钱也买Snap股票
- 服务器端与客户端TCP连接入门(三:多线程)
- OC学习之面向对象三大特征
- C#中的DateTime:本周,本月,今年,本周
- C++中如何定义某个数组的引用?
- IIS7.0下 HTTP 错误 404.15 - Not Found 请求筛选模块被配置为拒绝包含的查询字符串过长的请求...
- 为何要领域驱动设计?
- 减少图片HTTP 请求的方案
- java中集合的结构Set类型