Node.js 代码实现目录浏览服务的方法
目录
文章目录隐藏
在之前的文章中我们用 node.js http-server 实现目录浏览服务,本文我们将通过编码的方式来实现目录浏览服务,前提是你已经按照好 Node.js。
编码实现
1、创建项目
找个自己喜欢的位置,创建个目录,起名为dirService
2、初始化项目
npm init
3、安装相关插件
npm install connect@3.7.0 http@0.0.1-security st@2.0.0 --save-dev
因为用到了connect.static
,所以需要指定版本。
4、编写脚本 index.js
var connect = require('connect'); var http = require('http'); var st = require('st'); var port = 8081; 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);
5、启动脚本 index.js
node index.js server start done. port is 8081
6、查看效果
第二种写法
var http = require('http'); var st = require('st'); var port = 8081; 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 = 8081; 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 = 8081; 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()
。因此,取最新版本的组件不能保证代码顺利执行,尽量指定组件的版本。
关于空目录
空目录打开异常(无响应)。
非空目录打开正常。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » Node.js 代码实现目录浏览服务的方法
码云笔记 » Node.js 代码实现目录浏览服务的方法