Пытаюсь создать приложение для загрузки и подписи изображений непосредственно на mongodb с помощью GridFs.А затем создайте API, чтобы показать эти изображения и подписи на стороне клиента.Серьезная проблема.Это мой мультер с движком памяти grdifs.Работает как шарм.
const storage = new GridFsStorage({
url : mongoURI,
file : (req, file) => {
return new Promise((resolve, reject) => {
crypto.randomBytes(16, (err, buff) => {
if(err){
return reject(err);
}
const filename = buff.toString('hex') + path.extname(file.originalname);
const fileInfo = {
filename: filename,
caption : req.body.name,
bucketName : 'uploads'
};
resolve(fileInfo);
});
});
}
});
const upload = multer({ storage });
app.post('/upload', upload.single('file'), (req, res) =>{
res.json({file : req.file});
});
Проблема в том, что когда я пытаюсь включить другое действие, используя созданную мной модель поста, используя схему mongoose, на этом маршруте после загрузки изображения, например, так.
app.post('/upload', upload.single('file'), (req, res) =>{
const newPost = new Post({
caption : req.body.caption,
image : req.file.filename
})
newPost.save()
.then(post => res.json('Posted'))
.catch(err => console.log(err)) ;
//res.json({file : req.file});
});Сервер просто зависает при загрузке.Итак, мой вопрос, меняет ли использование gridfs то, как мы обычно используем модели mongoose с MongoDB?
Модель My Post (post.js)
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//Post Schema
let PostSchema = new Schema({
caption : {
type : String,
required : true
},
image : {
type: String,
required: true
}
});
let Post = module.exports = mongoose.model('Post', PostSchema);
Я хочу использовать эту коллекцию Post, чтобы сохранить загруженное имя файла изображения вместе с подписью от клиента.Я делаю что-то не так, и мне нужна помощь.
Еще одна проблема, сейчас я использую форму для выполнения этого запроса POST.Но когда я пытаюсь использовать axios для отправки запроса на мой порт API (например, 5000) с моего клиентского порта (например, 8080), я получаю ошибку CORS.Как мне это преодолеть?