セキュリティ上の理由から、クライアント側は互いに接続されていないため、サーバー側に直接書き込むことはできません。ファイルをサーバーに書きたい場合は、バックエンドサーバーと、そのような方法でファイルをやりとりするためのAPI /スクリプトが必要です。
Firebaseのようなデータベースやクラウドソリューションを使用するなど、ファイルの作成には関係しない他の方法もあります。ただし、サイトを基本的に保ち、静的ファイル(速度はその1つ)を作成し、データベースを別のものに設定して維持したくないという完全な正当な理由があります。
これは、例えば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
モジュールは、さまざまな方法でファイルを作成できるという点で柔軟です。上記はストリームを使用しており、大規模なファイルを処理する場合には最適です。
JavaScriptだけではなく、いいえ。何らかのサーバサイドコンポーネントが必要になります。これは通常、実際の個別ファイルではなく、データベースで行われます。たとえば、StackOverflowを取ると、JSを使ってサーバに '.html'ファイルを置くことができない場合、すべての質問に対して別々の' .html'ファイルが存在することは愚かです。代わりに、一連のスクリプトとデータベースがあります。 – ceejayoz
なぜそうではないのでしょうか?洞察のためにこのソリューションに従ってください: https://stackoverflow.com/questions/8390855/how-to-instantiate-a-file-object-in-javascript –
@tolulopeowolabi Webサーバー上にファイルを作成しないでください。 – ceejayoz