是否有Node.js即用工具(与npm一起安装),可以帮助我通过HTTP将文件夹内容作为文件服务器公开。

例如,如果我有

D:\Folder\file.zip
D:\Folder\file2.html
D:\Folder\folder\file-in-folder.jpg

然后从D:\Folder\node node-file-server.js开始我可以通过

http://hostname/file.zip
http://hostname/file2.html
http://hostname/folder/file-in-folder.jpg

为什么我的节点静态文件服务器丢弃请求?参考一些神秘的

标准node.js静态文件服务器

如果没有这样的工具,我应该使用什么框架?

相关:NodeJS中的基本静态文件服务器


当前回答

对于希望在NodeJS脚本中运行服务器的用户:

您可以使用expressjs/serve-static替换connect.static(从connect 3起不再可用):

myapp.js:

var http = require('http');

var finalhandler = require('finalhandler');
var serveStatic = require('serve-static');

var serve = serveStatic("./");

var server = http.createServer(function(req, res) {
  var done = finalhandler(req, res);
  serve(req, res, done);
});

server.listen(8000);

然后从命令行:

$npm安装finalhandler服务静态$node myapp.js

其他回答

连接可能是你想要的。

易于安装:

npm install connect

那么最基本的静态文件服务器可以写为:

var connect = require('connect'),
    directory = '/path/to/Folder';

connect()
    .use(connect.static(directory))
    .listen(80);

console.log('Listening on port 80.');

我在工作和个人项目中使用休斯顿,这对我来说很好。

https://github.com/alejandro/Houston

对于希望在NodeJS脚本中运行服务器的用户:

您可以使用expressjs/serve-static替换connect.static(从connect 3起不再可用):

myapp.js:

var http = require('http');

var finalhandler = require('finalhandler');
var serveStatic = require('serve-static');

var serve = serveStatic("./");

var server = http.createServer(function(req, res) {
  var done = finalhandler(req, res);
  serve(req, res, done);
});

server.listen(8000);

然后从命令行:

$npm安装finalhandler服务静态$node myapp.js

Node.js上的小型命令行web服务器:miptleha http

完整源代码(80行)

你可以试着为我服务

使用它非常简单:

ServeMe = require('serve-me')();
ServeMe.start(3000);

仅此而已。

PD:默认情况下提供的文件夹为“public”。