Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Bagaimana untuk memindahkan fail dalam nodejs dan menyimpannya dalam pangkalan data pada masa yang sama

Bagaimana untuk memindahkan fail dalam nodejs dan menyimpannya dalam pangkalan data pada masa yang sama

PHPz
Lepaskan: 2023-04-07 12:55:13
asal
1022 orang telah melayarinya

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.

Pindahkan fail ke pelayan

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
Salin selepas log masuk

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('文件已上传');
});
Salin selepas log masuk

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".

Memuat naik fail daripada klien

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>
Salin selepas log masuk

Dalam kod HTML di atas, selepas menyerahkan borang, fail akan dimuat naik ke laluan bernama "/ muat naik".

Simpan fail ke pangkalan data

Selepas memuat naik fail ke pelayan, ia perlu disimpan dalam pangkalan data. Berikut ialah beberapa cara untuk menyimpan fail ke sistem pangkalan data biasa:

Menyimpan fail ke dalam MongoDB

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);
});
Salin selepas log masuk

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.

Menyimpan fail ke dalam MySQL

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('文件已上传');
});
Salin selepas log masuk

Dalam kod di atas, fail dibaca ke dalam memori dan kemudian dimasukkan ke dalam fail bernama "fail" menggunakan kaedah pertanyaan MySQL " dalam meja.

Kesimpulan

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan