如何在JavaScript中将文件添加到网站的目录中?

时间:2017-07-11 02:06:20

标签: javascript html

是否可以将文件添加到网站的目录中?

换句话说,假设我有一个目录 - 例如我称之为"myWeb" - 它有index.htmlmain.js

main.js中,当我点击一个按钮时,我想向myWeb添加一个新页面,让我们说secondindex.html(现在,我不担心在覆盖文件时再次点击)。

这可能吗?如果没有,还有其他技术,还是这个太宽泛了?

1 个答案:

答案 0 :(得分:0)

出于安全原因,客户端无法直接写入服务器端,因为它们之间没有相互连接。如果您想要将文件写入服务器,则需要后端服务器和某种与之交互的API /脚本,并以此方式创建文件。

还有其他方法不涉及创建文件,例如使用像Firebase这样的数据库或云解决方案。但是,您可能希望保持站点基本并写入静态文件(速度是其中之一)并且不希望将数据库设置为另一个数据库,这是完全正确的理由。

可以使用Node.js中的fs模块完成此操作,例如:

var fs = require('fs');

function generateHtml (req) {
  return '<!DOCTYPE html><html><header><title>My Page</title></header><body><p>A test page</p></body></html>';
}

var filename = '/path/to/secondindex.html';
var stream = fs.createWriteStream(filename);

stream.once('open', function(fd) {
  var html = generateHtml();

  stream.write(html);

  stream.end();
});

以上内容将位于Javascript文件服务器端中,然后您将要求某种服务器检查请求(最好是使用令牌或其他东西保护)并创建所需的文件。

fs模块特别灵活,因为您可以通过多种方式创建文件。以上使用流,非常适合处理潜在的大量文件。