是否有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中的基本静态文件服务器
以下内容对我有用:
创建包含以下内容的文件app.js:
// app.js
var fs = require('fs'),
http = require('http');
http.createServer(function (req, res) {
fs.readFile(__dirname + req.url, function (err,data) {
if (err) {
res.writeHead(404);
res.end(JSON.stringify(err));
return;
}
res.writeHead(200);
res.end(data);
});
}).listen(8080);
创建包含以下内容的文件index.html:
Hi
启动命令行:
cmd
在cmd中运行以下命令:
node app.js
转到下面的URL,以chrome显示:
http://localhost:8080/index.html
这就是全部。希望这会有所帮助。
资料来源:https://nodejs.org/en/knowledge/HTTP/servers/how-to-serve-static-files/
对于希望在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