Nodejsでファイルを転送し、同時にデータベースに保存する方法
Node.js は非常に強力なバックエンド開発言語であり、ファイルをサーバーに簡単に転送できます。同時に、これらのファイルをデータベースに保存することもできます。この記事では、Node.js を介してデータベースへのファイルの転送とファイルの永続化を同時に行う方法を簡単に紹介します。
ファイルをサーバーに転送する
Node.js では、Express フレームワークを使用してファイルを受信し、サーバーにアップロードできます。ファイルをアップロードするには、Multer というライブラリを使用する必要があります。 Multer は、Node.js でマルチパート/フォームデータ データを処理するためのミドルウェアです。 Busboy 上に構築されており、Node.js の組み込みマルチパート モジュールを使用してファイルのアップロードを処理できます。
Multer を使用するには、まずインストールする必要があります。 Multer は、次のコマンドを使用してコマンド ラインからインストールできます:
npm install --save multer
インストールしたら、Multer からミドルウェアをインポートして Express アプリケーションに追加できます: 上記の
const express = require('express'); const multer = require('multer'); const app = express(); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { // 处理文件上传 res.send('文件已上传'); });
コードでは、upload.single
メソッドは、アップロードされたファイルを指定されたディレクトリに保存します。この場合、ファイルは「Uploads」という名前のフォルダーに保存されます。
クライアントからのファイルのアップロード
Node.js でサーバーにファイルをアップロードできるようになりました。しかし、クライアントからサーバーにファイルをアップロードするにはどうすればよいでしょうか? HTML5 は、ファイルをサーバーにアップロードするために使用できる と呼ばれる入力タイプを提供します。 HTML では、次のコードを使用して、クライアントにファイルをアップロードするためのフォームを追加できます:
<form action="/upload" enctype="multipart/form-data" method="POST"> <input type="file" name="file"> <input type="submit" value="上传文件"> </form>
上記の HTML コードでは、フォームを送信した後、ファイルは「/upload」という名前のルートにアップロードされます。 。
ファイルをデータベースに保存する
ファイルをサーバーにアップロードした後、データベースに保存する必要があります。一般的なデータベース システムにファイルを保存する方法は次のとおりです。
MongoDB へのファイルの保存
MongoDB にファイルを保存するには、ファイルをバイナリ データに変換し、ファイルの追加の詳細 (ファイル名やファイルタイプなど)は、MongoDB GridFS に保存されます。
次は、MongoDB にファイルを保存する例です:
const MongoClient = require('mongodb').MongoClient; const Grid = require('gridfs-stream'); MongoClient.connect('mongodb://localhost/my_database', (err, client) => { const db = client.db('my_database'); const gfs = Grid(db, require('mongodb')); const writestream = gfs.createWriteStream({ filename: 'my_file.txt' }); fs.createReadStream('./uploads/my_file.txt').pipe(writestream); });
上記のコードでは、gridfs-stream
ライブラリを使用してファイルをディレクトリに保存します。 「my_file .txt」ドキュメントと呼ばれます。このライブラリを使用すると、MongoDB GridFS を使用して大きなバイナリ データ (ファイルなど) を MongoDB に保存できます。
MySQL へのファイルの保存
ファイルを MySQL に保存するには、ファイルのバイナリ データを含む BLOB 行を作成します。ファイルを MySQL データベースに保存する例を次に示します。
const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'my_database' }); const file = fs.readFileSync('./uploads/my_file.txt'); const sql = 'INSERT INTO files (filename, file) VALUES (?, ?)'; const values = ['my_file.txt', file]; connection.query(sql, values, (error, results, fields) => { if (error) throw error; res.send('文件已上传'); });
上記のコードでは、ファイルはメモリに読み取られ、MySQL のクエリ メソッド テーブルを使用して「files」という名前のファイルに挿入されます。
結論
この記事では、Node.js を使用してクライアントからサーバーにファイルをアップロードし、そのファイルをデータベースに保存する方法について説明します。 Multerミドルウェアを使用することで、ファイルを簡単にサーバーにアップロードできます。 MongoDB または MySQL にファイルを保存するには、それぞれ GridFS および BLOB データ型を使用して、対応するデータベースにファイルを保存できます。これは、多くの Web アプリケーションで使用されている非常に強力な機能です。
以上がNodejsでファイルを転送し、同時にデータベースに保存する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、functionコンポーネントでのデータフェッチやDOM操作などの副作用を管理するためのフックであるReactの使用Effectについて説明します。メモリリークなどの問題を防ぐための使用、一般的な副作用、およびクリーンアップについて説明します。

怠zyな読み込みは、必要になるまでコンテンツの読み込みを遅延させ、初期負荷時間とサーバーの負荷を削減することにより、Webパフォーマンスとユーザーエクスペリエンスを改善します。

JavaScriptの高次関数は、抽象化、共通パターン、および最適化技術を通じて、コードの簡潔さ、再利用性、モジュール性、およびパフォーマンスを強化します。

この記事では、JavaScriptのカレーについて説明します。これは、マルチアーグメント関数を単一argument関数シーケンスに変換する手法です。 Curryingの実装、部分的なアプリケーションなどの利点、実用的な用途、コード読み取りの強化を調査します

この記事では、Virtual DOMツリーを比較してDOMを効率的に更新するReactの調整アルゴリズムについて説明します。パフォーマンスの利点、最適化技術、ユーザーエクスペリエンスへの影響について説明します。

記事では、PreventDefault()メソッドを使用して、イベントハンドラーのデフォルト動作の防止、ユーザーエクスペリエンスの強化などの利点、およびアクセシビリティの懸念などの潜在的な問題について説明します。

この記事では、ReactのUseContextを説明しています。これにより、小道具掘削を避けることで国家管理を簡素化します。再レンダーの削減により、集中状態やパフォーマンスの改善などの利点について説明します。

この記事では、予測可能性、パフォーマンス、ユースケースなどの側面に焦点を当てた、Reactの制御されていないコンポーネントと制御されていないコンポーネントの利点と欠点について説明します。それらを選択する際に考慮することを要因についてアドバイスします。
