2015-04-20 19 views
11

Tôi đang phát triển API RESTful cho ứng dụng khách trên thiết bị di động với sự kết hợp của Node.js, Express.js và Mongodb. Bây giờ tôi đang cố gắng xử lý việc tải lên hình ảnh hồ sơ người dùng và tôi đã tìm thấy một mô-đun được gọi là "multer" (đó là một phần được nhóm chính express.js thêm vào) cho phép express.app xử lý nhiều phần/biểu mẫu -data yêu cầu. Bây giờ tôi cần phải thử nghiệm ứng dụng và hơn thế nữa, chức năng tải lên nhưng tôi không thể mô phỏng một yêu cầu dạng http (thông qua plugin chrome của người viết bài). Multer trả về lỗi này:Tải tệp lên ứng dụng Express.js

[Lỗi: Multipart: Ranh giới không tìm thấy]

Trong thực tế, so sánh một http request-form (có công trình) với một yêu cầu tùy chỉnh http, điều thứ hai đã không phải là Thuộc tính tiêu đề ranh giới.

Thuộc tính ranh giới là gì?

Trả lời

8

Ranh giới ở dạng nhiều phần biểu thị một số chuỗi phân tách bằng dấu tách văn bản và dữ liệu nhị phân. Bạn có thể làm điều này trong người đưa thư nhưng có vẻ như bạn không gửi cả tệp và văn bản để người đưa thư có thể mặc định ở dạng thông thường. bạn có thấy cái gì đó như:

postman-form-multipart

Nếu bạn bấm xem trước trong người đưa thư bạn sẽ nhìn thấy ranh giới trong tiêu đề Content-type và trong cơ thể.

+7

Ngoài ra, tôi đã phát hiện ra rằng không cần phải chỉ định thuộc tính Kiểu nội dung theo cách thủ công ... Trong trường hợp bạn làm điều đó, bạn sẽ gặp lỗi tương tự. –

35

Nếu bạn đang sử dụng Postman, bạn có thể thử xóa Tiêu đề: "Content-type": "multipart/form-data". Tôi đã xóa nó và bây giờ nó hoạt động.

+1

Vâng điều này hoạt động; nhưng trong một kịch bản từ thực, tiêu đề 'Content-Type' thực sự sẽ là 'multipart/form-data'. Liệu multer hoạt động chính xác trong trường hợp đó? – scaryguy

+0

@scaryguy: Postman thêm nó cho bạn theo mặc định –

+0

Điều này làm việc cho tôi bằng cách sử dụng ES6 'fetch', cũng có. – brandones

Các vấn đề liên quan