После нажатия на кнопку загрузить изображение на мое приложение, этот код (событие) срабатывает:Почему мой FS.collection не вставляет изображения и НЕ показывает никаких сообщений об ошибках?
/MYAPP
../client/main.js
import '../imports/api/tasks.js';
Meteor.subscribe('Images');
FS.Utility.eachFile(event, function(file) {
var teste = Images.insert(file, function (err, fileObj) {
var insertedIdSession = teste._id;
console.log("Total number of images in Images Collection is: " + Images.find().count());
console.log("Inserted _ID is: " + insertedIdSession);
console.log("Latest image is:" + Images.find(insertedIdSession));
},
function(error, result) {
if (error) console.log (error); //info about what went wrong
if (result) console.log (result); //the _id of new object if successful
});
Ниже результат (изображение) в консоли браузера:
изображение указывает на то, что изображение не было вставлена вообще. Чтобы подтвердить это, я также запускаю: Images.find().fetch()
в браузере, который подтвердил, что ничего не было вставлено.
Кроме того, странно, что обработчики ошибок не показывают никаких признаков ошибки и результата. .... Подождите, пока он станет еще более странным, ссылка внизу изображения на самом деле успешно указывает на загруженное изображение. Я не могу понять, где я ошибаюсь. Пожалуйста, помогите мне здесь.
Ниже приведены мои настройки:
/MYAPP
../imports/api/tasks.js
import { Mongo } from "meteor/mongo";
Images = new FS.Collection("images", {
stores: [new FS.Store.FileSystem("images", {path: "~/uploads"})] });
/MYAPP
../server/main.js
import '../imports/api/tasks.js';
Meteor.startup(() => {
Meteor.publish('Images', function(){
return Images.find();
});
});
Спасибо за ответ. Я основал свою кодировку в библиотеке FS.Collection2, найденной @ [https://github.com/CollectionFS/Meteor-CollectionFS]. B.T.W. код работал отлично, прежде чем я удалил autopublish с 'meteor remove autopublish'. Означает ли эта деталь подсказку? – SirBT
Хорошо, это важный факт. Основная помощь при устранении проблемы после взлома - спросить «что изменилось?». Таким образом, это означает, что что-то с вашей стратегией публикации нарушено - возможно, вы не разрешаете вставку с клиента? – Mikkel
Я не уверен, что я изменил в коде (Извините), но он думает, что он дал функции публикации имя "publishImages", теперь он выглядит так: 'Meteor.publish ('Images', function publishImages() { \t return Images.find(); }); 'В любом случае функция' Images.insert' теперь работает, теперь просто возникают проблемы с отображением вставленных изображений в галерее. – SirBT