Bộ đệm cho hình ảnh nodejs ✅ 2023
Kinh Nghiệm về Bộ đệm cho hình ảnh nodejs Mới Nhất
Cao Thị Phương Thảo đang tìm kiếm từ khóa Bộ đệm cho hình ảnh nodejs được Update vào lúc : 2022-12-24 03:50:11 . Với phương châm chia sẻ Bí kíp Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi tham khảo tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Ad lý giải và hướng dẫn lại nha.Xin chào những bạn. ngày hôm nay mình sẽ hướng dẫn những bạn viết một Node. js server đơn giản để tải ảnh lên, sau đó tất cả chúng ta sẽ viết một Ứng dụng Android để tải ảnh lên
Mã có sẵn tại. https. //github. com/hoc081098/Upload-Image-Node. js
Video direction . https. //www. youtube. com/watch?v=pL5Ci_lfxlw&t=3s
1. Điều kiện tiên quyết- Cài đặt môi trường tự nhiên thiên nhiên nút. js và npm trong hệ điều hành của bạn (Windows, Linux hoặc OS X). Load down Node. js từ link. https. //nodejs. tổ chứcTải xuống và setup sever MongoDB trong hệ điều hành của bạn (Windows, Linux hoặc OS X) từ link. https. //www. mongodb. com/trung tâm tải xuốngTải xuống và setup Robomongo, một ứng dụng khách GUI được sử dụng để tạo và xem cơ sở tài liệu, tải xuống từ link. https. //robomongo. tổ chức/
Sử dụng Robomongo để tạo nền tảng MongoDB mới mang tên là upload-image. Sau đó nhấp chuột phải vào cơ sở tài liệu đã tạo và chọn Open Shell. Gõ đoạn mã sau vào shell
db.getCollection('imagemodel').createIndex ( "name": 1 , unique: true )
Đoạn mã trên làm cho tên trường là duy nhất, tương tự như từ khóa chính trong cơ sở tài liệu quan hệ như MySQL
3. Tạo dự án công trình bất Động sảnTạo 1 thư mục tên NodeUploadImage. Use terminal (hoặc Command Prompt trong hệ điều hành Windows), cd to the new directory.
______1
Sau đó setup những phụ thuộc.
______2
Trong số đó.
- bày tỏ. Đây là một khung hoàn hảo nhất được sử dụng để tạo ra những dịch vụ web RESTfulcầy mangut. Mô-đun này được sử dụng để link với cơ sở tài liệu MongoDBcơ quan. Mô-đun này được sử dụng để đăng nhập vào thiết bị đầu cuối theo yêu cầu httplẩm bẩm. Mô-đun này là cầu nối trung gian được sử dụng để tải lên tệp dễ dàngloại tệp. Mô-đun này được sử dụng để lấy loại MIME của tệp được tàng trữ
Chúng ta có 2 tệp
- image_model. js. where we định nghĩa MongoDB Collection shemamục lục. js. bộ định tuyến và chạy ứng dụng
Chúng ta định nghĩa lược đồ imageModel có 3 trường
- Tên. type String, save image name, duy nhấtimage_path. type String, save path of imagecreated_at. type Date, default value is Date. giờ đây, lưu thời gian tạo quy mô
hoàn hảo nhất mã
Tệp này chứa văn bản Unicode hai chiều hoàn toàn có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị phía dưới. Để xem lại, hãy mở tệp trong trình sửa đổi hiển thị những ký tự Unicode bị ẩn. Tìm hiểu thêm về những ký tự Unicode hai chiều
Hiển thị ký tự ẩn
const mongoose = yêu cầu('mongoose')mongoose.Lời hứa = toàn cầu. Lời hứaconst lược đồ = new . mongoose.Lược đồ(tên . Chuỗi,đường dẫn_hình ảnh . Chuỗi,created_at . loại . Ngày,mặc định . Ngày. giờ đây)const . //sever cục bộ. 27017/upload-image' mongoDb = 'mongodb://localhost:27017/upload-image'mongoose. link(mongoDb)mô-đun . .xuất khẩu = cầy mangut. quy mô('quy quy mô ảnh', schema)xem image_model thô. js được tàng trữ với ❤ bởi GitHub
6. chỉ mục tệp. jshoàn hảo nhất mã
Tệp này chứa văn bản Unicode hai chiều hoàn toàn có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị phía dưới. Để xem lại, hãy mở tệp trong trình sửa đổi hiển thị những ký tự Unicode bị ẩn. Tìm hiểu thêm về những ký tự Unicode hai chiều
Hiển thị ký tự ẩn
const express = require('express')const app = express()const router = express.Bộ định tuyến()const đường dẫn . /image_model' = require('path')const fileType = require('file-type')const multer = require('multer')const fs = require('fs')const imagemodel = require('./image_model')ứng dụng. sử dụng(yêu cầu(' . //sever cục bộ. 27017/upload-image)('combined'))//mongodb://localhost:27017/upload-imageconst upload = multer(dest: 'hình ảnh/',bộ lọc tệp . (yêu cầu, tệp, . callback) => if (!/S+. ( jpg . bmp . gif . png )/ gi. thử nghiệm(tệp. tên gốc)) return . callback(Error('Invalid image file name'), false)const reqName = req.thông số. image_nameimagemodel. tìm( tên . reqName ). số lượng giới hạn(1). exec((err, . res) => if (err) console.log(err)return . callback(err, false)if (res.độ dài === 0) callback(null, true)else callback(Error(`Image with name: "$reqName " tồn tại`), false))).đơn('hình ảnh')router.bài đăng('/images/upload/. image_name', (req, res) => console.log(`Đăng. req = $req `)upload(req, res, (err) => if (err) res.trạng thái(400). json( thông báo . err. thông báo )trả về . const reqName = req.tham số. image_nameconst imagePath = path . .tham gia('hình ảnh', req.tệp. tên tệp)const quy mô = . new imagemodel(name: reqName,image_path . đường dẫn hình ảnh,created_at . mới Ngày() . )model.lưu((err) . => if (err) console.log(err)return . res.trạng thái(500). json(thông báo . err. thông báo)res . .trạng thái(200). json( thông báo . `Hình ảnh đã tải lên " $reqName" successfully` ))))router.lấy('/images/. image_name', (req, res) => console.log(`Nhận. req = $req `)imagemodel.tìm(tên . yêu cầu. tham số. image_name, image_path . : 1, _id . 0). số lượng giới hạn(1). exec((err, . docs) => if (err) console.log(err)return . res.trạng thái(500). json(thông báo . err. thông báo)nếu . (docs.độ dài === 0) return res.trạng thái(404). json( thông báo . 'Không có tệp hình ảnh như vậy' )const imagePath = path.tham gia(__dirname, tài liệu . [0].image_path)thử const . buffer = fs.readFileSync(imagePath)const . mime = fileType(buffer).kịch bảnres. writeHead(200, . 'Content-Type': ngữ cảnh )res. kết thúc(bộ đệm, ' . ) catch (error) console.log(lỗi. mã)nếu (lỗi . .mã === 'ENOENT') res.trạng thái(404). json( thông báo . 'Không có tệp hình ảnh nào như vậy' ) else res.trạng thái(500). json( thông báo . lỗi. thông báo ) . )})router.lấy('/hình ảnh', (req, res) => console.log(`Nhận. req = $req `)const start = parseInt(req.truy vấn. khởi đầu) . 0const limit = parseInt . (req.truy vấn. số lượng giới hạn) . 20mô hình hình ảnh. tìm(, . name: 1, _id . 0 ). sắp xếp( created_at . -1 ). bỏ qua(khởi đầu). số lượng giới hạn(số lượng giới hạn). exec((err, . docs) => if (err) console.log(err)return . res.trạng thái(500). json(thông báo . err. thông báo, tài liệu . null)res . .trạng thái(200). json(thông báo . 'Nhận tài liệu thành công',tài liệu . tài liệu. map(e => . .tên)) . ))router.bài đăng("/test", (req, res) => res.trạng thái(200). gửi("Rất vui"))app.sử dụng("https://cunghoidap.com/", router)app.nghe(3001, ( . ) => console.log('Máy chủ đang chạy ở cổng 3001'))xem chỉ mục thô. js được tàng trữ với ❤ bởi GitHub
Chúng ta định nghĩa những điểm cuối
- ĐĂNG /hình ảnh/tải lên/. Tên Hình ảnh. upload image with image_nameNHẬN /hình ảnh/. Tên Hình ảnh. get image with image_nameNHẬN /images?start=…&limit=…. get array name image, with start (default 20), limit(default 20)
6. 1. ĐĂNG /hình ảnh/tải lên/. Tên Hình ảnh
Ta sử dụng bộ lọc để tạo hiệu suất cao tải lên. with thư mục lưu ảnh là đích. ‘images/’, fileFilter để lọc những tập tin hợp lệ
Tải thêm tài liệu liên quan đến nội dung bài viết Bộ đệm cho hình ảnh nodejs programming nodejs