Người đàn ông bạn đang chạy trên con đường sai lầm. Tôi đã giải thích trong yêu cầu câu hỏi trước của bạn rằng Multer được sử dụng để lưu tệp trong hệ thống đĩa tệp chứ không phải trực tiếp vào cơ sở dữ liệu của bạn. Đối với điều đó, bạn phải sử dụng GRIDFS.
Đến với câu hỏi hiện tại của bạn.
app.post('/Upload', upload.single('solution') ,function (req, res, next) {
console.log(req.file);
});
Đây là upload.single('solution')
- gọi một hàm Tải lên và tên tệp được truyền là giải pháp nhưng rõ ràng là nó không có sẵn ở đây.
sử dụng loại định dạng này - tài liệu về Multer
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage })
Phần Lưu trữ ở đó được sử dụng để cung cấp đường dẫn đến nơi tệp của bạn phải được lưu và phần tên tệp được sử dụng để thực hiện các thay đổi đối với tên tệp mà bạn muốn có.
Vui lòng đọc tài liệu vì điều đó sẽ hữu ích. Khi chúng tôi sử dụng các mô-đun của bên thứ ba, chúng tôi phải xác nhận thông tin mà họ đã cung cấp để chúng tôi có thể sử dụng công việc của họ một cách dễ dàng.
Hãy để tôi làm cho nó dễ dàng hơn cho bạn. Đây là mã đã sẵn sàng hoạt động.
Multer gặp lỗi kỳ lạ khi tải tệp lên qua ng-file upload
Đi kiểm tra chủ đề đó. Tôi đã đặt ra câu hỏi - vấn đề là tôi đang gửi các tệp ở định dạng mảng, như trong nhiều tệp cùng một lúc. Nếu bạn không làm điều đó, chỉ cần thay đổi phân đoạn ng-file-upload để sử dụng ví dụ demo tải lên duy nhất và trên mã nodejs phía máy chủ, hãy thay thế .array
với .single
và mọi thứ sẽ hoạt động theo cách bạn muốn - với điều kiện bạn muốn sử dụng hệ thống đĩa tệp để lưu trữ tệp.
Tôi nhắc lại rằng phương pháp này sẽ không giúp bạn lưu tệp trong mongodb trực tiếp.
Hãy cho tôi biết nếu bạn cần làm rõ thêm.