У меня есть сервер graphql , созданный express-graphql , и я использую mongoDb для хранения изображений в обычной коллекции базы данных, поскольку они <16 МБ. </p>
У меня реагирует и android приложение. Каков наилучший способ предоставить эти изображения клиентам.
В моей схеме у меня есть что-то вроде этого.
const productSchema = new Schema({
views: {type: Number, default: 0},
//Storing only thumbnail in this document.
thumbnail: {data: Buffer, contentType: String},
});
И в моей схеме у меня есть что-то вроде
const productType = new GraphQLObjectType({
name: 'Product',
fields: () => ({
//.........
thumbnail: {type: 'WHAT TO DO HERE'},
views: {type: new GraphQLNonNull(GraphQLInt)}
//.........
}),
});
Edit:
Я создал такой роутер.
router.get('/t/:productId', function (req, res) {
const productId = req.params.productId;
Product.findById(productId, {thumbnail: true}).then(thumbnail => {
res.contentType(thumbnail.contentType);
res.end(thumbnail.data, "binary");
}).catch(e => {
console.error(e);
res.sendStatus(404);
});
});