Node.js 代码实现目录浏览服务的方法

目录
文章目录隐藏
  1. 编码实现
  2. 第二种写法
  3. 第三种写法
  4. 第四种 express 的写法
  5. 关于错误 Cannot GET /
  6. 关于版本
  7. 关于空目录

在之前的文章中我们用 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、查看效果

http-server

第二种写法

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()。因此,取最新版本的组件不能保证代码顺利执行,尽量指定组件的版本。

关于空目录

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

非空目录打开正常。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » Node.js 代码实现目录浏览服务的方法

发表回复