Rumah > Artikel > hujung hadapan web > Bagaimana untuk memindahkan fail dalam nodejs dan menyimpannya dalam pangkalan data pada masa yang sama
Node.js ialah bahasa pembangunan bahagian belakang yang sangat berkuasa, yang boleh memindahkan fail ke pelayan dengan mudah. Pada masa yang sama, ia juga boleh mengekalkan fail ini ke pangkalan data. Artikel ini akan memperkenalkan secara ringkas cara memindahkan fail dan fail berterusan secara serentak ke pangkalan data melalui Node.js.
Dalam Node.js, anda boleh menggunakan rangka kerja Express untuk menerima fail dan memuat naiknya ke pelayan. Untuk memuat naik fail, anda perlu menggunakan perpustakaan yang dipanggil Multer. Multer ialah perisian tengah untuk memproses data berbilang bahagian/data bentuk dalam Node.js. Ia dibina pada busboy dan boleh menggunakan modul berbilang bahagian terbina dalam Node.js untuk mengendalikan muat naik fail.
Untuk menggunakan Multer, anda perlu memasangnya terlebih dahulu. Multer boleh dipasang dari baris arahan menggunakan:
npm install --save multer
Setelah dipasang, anda boleh mengimport middleware daripada Multer dan menambahnya pada aplikasi Express anda:
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('文件已上传'); });
Dalam kod di atas, kaedah upload.single
menyimpan fail yang dimuat naik dalam direktori yang ditentukan. Dalam kes ini, fail akan disimpan dalam folder bernama "Muat Naik".
Kini boleh memuat naik fail ke pelayan dalam Node.js. Tetapi bagaimana untuk memuat naik fail dari klien ke pelayan? HTML5 menyediakan jenis input yang dipanggil , yang boleh digunakan untuk memuat naik fail ke pelayan. Dalam HTML, anda boleh menambah borang untuk memuat naik fail kepada klien menggunakan kod berikut:
<form action="/upload" enctype="multipart/form-data" method="POST"> <input type="file" name="file"> <input type="submit" value="上传文件"> </form>
Dalam kod HTML di atas, selepas menyerahkan borang, fail akan dimuat naik ke laluan bernama "/ muat naik".
Selepas memuat naik fail ke pelayan, ia perlu disimpan dalam pangkalan data. Berikut ialah beberapa cara untuk menyimpan fail ke sistem pangkalan data biasa:
Untuk menyimpan fail dalam MongoDB, anda boleh menukar fail kepada data binari dan tentang Butiran tambahan fail ( seperti nama fail dan jenis fail) kemudiannya disimpan dalam MongoDB GridFS.
Berikut ialah contoh untuk menyimpan fail dalam 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); });
Dalam kod di atas, pustaka gridfs-stream
digunakan untuk menyimpan fail ke fail yang dipanggil "my_file. txt" dalam dokumen. Pustaka ini membenarkan menyimpan data binari yang besar (seperti fail) dalam MongoDB menggunakan MongoDB GridFS.
Untuk menyimpan fail dalam MySQL, ini dicapai dengan mencipta baris BLOB yang mengandungi data binari fail. Berikut ialah contoh menyimpan fail ke dalam pangkalan data 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('文件已上传'); });
Dalam kod di atas, fail dibaca ke dalam memori dan kemudian dimasukkan ke dalam fail bernama "fail" menggunakan kaedah pertanyaan MySQL " dalam meja.
Artikel ini menerangkan cara menggunakan Node.js untuk memuat naik fail daripada klien ke pelayan dan menyimpan fail dalam pangkalan data. Dengan menggunakan perisian tengah Multer, fail boleh dimuat naik dengan mudah ke pelayan. Untuk menyimpan fail dalam MongoDB atau MySQL, anda boleh menggunakan jenis data GridFS dan BLOB masing-masing untuk menyimpan fail dalam pangkalan data yang sepadan. Ini adalah ciri yang sangat berkuasa yang digunakan dalam banyak aplikasi web.
Atas ialah kandungan terperinci Bagaimana untuk memindahkan fail dalam nodejs dan menyimpannya dalam pangkalan data pada masa yang sama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!