是否有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包

npm永远安装http服务器

永远启动$(哪个http服务器)-p 8000-d false[FILE_DIRECTORY]

永远启动/usr/local/lib/node_modules/http-server/bin/http服务器-p 8000/home/web文件/

替代地,

http服务器-p 8000/home/web文件/

还有一个非常好的静态web服务器:浏览器同步。

可以使用节点包管理器下载:

npm install -g browser-sync

安装后,在cmd提示符下导航到项目文件夹,然后运行以下命令:

browser-sync start --server --port 3001 --files="./*"

它将开始处理浏览器中当前文件夹中的所有文件。

更多信息请访问BrowserSync

谢谢

一个好的“现成工具”选项可以是http服务器:

npm install http-server -g

要使用它:

cd D:\Folder
http-server

或者,像这样:

http-server D:\Folder

过来看:https://github.com/nodeapps/http-server

const http=要求('http');常量fs=要求('fs');const url=require('url');常量路径=require('path');让mimeTypes={“.html”:“text/html”,“.css”:“text/css”,“.js”:“text/javascript”,“.jpg”:“image/jpeg”,'.png':'image/png','.ico':'image/x-icon',“.svg”:“image/svg+xml”,“.eot”:“appaction/vnd.ms fontobject”,“.ttf”:“应用程序/font sfnt”};http.createServer(函数(请求、响应){let pathName=url.parse(request.url).path;如果(路径名=='/'){pathName='/index.html';}pathName=pathName.substring(1,pathName.length);let extName=路径.extName(路径名);let staticFiles=`${__dirname}/template/${pathName}`;如果(extName==“.jpg”| | extName=“.png”| | ext Name=“.ico”| | extName=“.eot”| | extName=“.ttf”| | textName=“.svg”){let file=fr.readFileSync(静态文件);res.writeHead(200,{'Content-Type':mimeTypes[extname]});res.write(文件,'binary');res.end();}其他{fs.readFile(staticFiles,'utf8',函数(错误,数据){if(!err){res.writeHead(200,{'Content-Type':mimeTypes[extname]});res.end(数据);}其他{res.writeHead(404,{'Content-Type':'text/html;charset=utf8'});res.write(“<strong>${staticFiles}</strong>找不到文件。”);}res.end();});}}).听(8081);

在NPM注册表中搜索https://npmjs.org/search?q=server,我找到了静态服务器https://github.com/maelstrom/static-server

曾经需要向同事发送文件,但不必麻烦发送电子邮件100MB的野兽?想要运行一个简单的JavaScript示例应用程序,但在文件中运行时遇到问题:///协议希望在没有设置Samba、FTP或其他需要您编辑的内容配置文件?然后这个文件服务器会让你的生活简单一点。要安装简单的静态素材服务器,请使用npm:npm安装-g静态服务器然后,要提供文件或目录,只需运行$serve路径/to/stuff在端口8001上提供路径/到/填充

这甚至可以列出文件夹内容。

很遗憾,它无法提供文件:)