Node.js は、高性能、スケーラブル、拡張可能な Web アプリケーションを構築するために一般的に使用される効率的なサーバーサイド JavaScript インタープリターです。 Node.js では、データのアップロードは一般的なタスクの 1 つであり、主に HTTP リクエストとファイルのアップロードを通じて実現されます。
この記事では、ファイルのアップロードやフォームデータのアップロードなど、Node.js でデータをアップロードするメソッドの実装方法を紹介します。
1. Node.js アップロード ファイル
Node.js では、multipart/form-data フォームを介してファイルをアップロードするのが一般的な方法です。このアプローチにより、さまざまなタイプやサイズのファイルをアップロードし、サーバー側に保存することができます。ファイルをアップロードする簡単な例を次に示します。
const http = require('http'); const fs = require('fs'); const formidable = require('formidable'); http.createServer(function (req, res) { if (req.url == '/upload' && req.method.toLowerCase() == 'post') { var form = new formidable.IncomingForm(); form.parse(req, function (err, fields, files) { var oldpath = files.filetoupload.path; var newpath = 'C:/Users/Username/' + files.filetoupload.name; fs.rename(oldpath, newpath, function (err) { if (err) throw err; res.write('File uploaded and moved!'); res.end(); }); }); } else { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<form action="upload" method="post" enctype="multipart/form-data">'); res.write('<input type="file" name="filetoupload"><br>'); res.write('<input type="submit">'); res.write('</form>'); return res.end(); } }).listen(8080);
上記のコードは、アップロードされたファイルの処理に役立つ Node.js の強力なモジュールを使用しています。このコードでは、サーバーを作成してアドレスをリッスンし、ファイルをアップロードするときに、formidable の IncomingForm() メソッドを呼び出し、parse() メソッドを通じてアップロードされたデータを解析します。
アップロードが成功したら、ファイルの一時パス (oldpath) を新しいパス (newpath) に移動し、エラーが発生した場合は例外をスローします。
2. Node.js でフォーム データをアップロードする
Node.js では、ファイルをアップロードする必要がなく、フォーム データのみをアップロードする必要がある場合は、次のメソッドを使用できます。 ##
const http = require('http'); http.createServer(function (req, res) { if (req.url == '/upload' && req.method.toLowerCase() == 'post') { var body = ''; req.on('data', function (data) { body += data; }); req.on('end', function () { var post = qs.parse(body); console.log(post); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('ok'); }); } else { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<form action="upload" method="post">'); res.write('<input type="text" name="name"><br>'); res.write('<input type="text" name="age"><br>'); res.write('<input type="submit">'); res.write('</form>'); return res.end(); } }).listen(8080);
以上がNodejsでデータをアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。