是否有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安装express:https://expressjs.com/en/starter/installing.html

在index.html的同一级别创建一个名为server.js的文件,内容如下:

var express = require('express');
var server = express();
server.use(express.static(__dirname));
server.listen(8080);

这将加载index.html文件。如果希望指定要加载的html文件,请使用以下语法:

server.use('/', express.static(__dirname + '/myfile.html'));

如果要将其放置在其他位置,请在第三行设置路径:

server.use('/', express.static(__dirname + '/public'));

CD到包含文件的文件夹,然后使用以下命令从控制台运行节点:

node server.js

浏览到localhost:8080

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

https://github.com/alejandro/Houston

我知道它不是Node,但我使用了Python的SimpleHTTPServer:

python -m SimpleHTTPServer [port]

它运行良好,并与Python一起提供。

这是另一个简单的web服务器。

https://www.npmjs.com/package/hostr

安装

npm install -g hostr

更换工作主管

cd myprojectfolder/

然后开始

hostr

你可以使用NPM服务包来实现这一点,如果你不需要NodeJS的东西,它是一个快速易用的工具:

1-在电脑上安装软件包:

npm install -g serve

2-使用Serve<path>服务静态文件夹:

d:> serve d:\StaticSite

它将显示静态文件夹的服务端口,只需导航到主机,如下所示:

http://localhost:3000