是否可以将文件添加到网站的目录中?
换句话说,假设我有一个目录 - 例如我称之为"myWeb"
- 它有index.html
和main.js
。
在main.js
中,当我点击一个按钮时,我想向myWeb
添加一个新页面,让我们说secondindex.html
(现在,我不担心在覆盖文件时再次点击)。
这可能吗?如果没有,还有其他技术,还是这个太宽泛了?
答案 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
模块特别灵活,因为您可以通过多种方式创建文件。以上使用流,非常适合处理潜在的大量文件。