-
Notifications
You must be signed in to change notification settings - Fork 5
[Meteor + Apollo] get blob url instead file #8
Copy link
Copy link
Open
Description
hi, I'm try to use this package to upload a file following instruction, but I got a blob url instead file. Here is my code:
in server.js:
{...}
import graphqlExpressUpload from 'graphql-server-express-upload'
import multer from "multer";
//used your interface package when create apollo server
import { createApolloServer } from 'meteor/apollo';
const WS_PORT = 8083;
const schema = makeExecutableSchema({
typeDefs:Schema,
resolvers:resolveFunctions,
});
createApolloServer({
schema,
},{ graphiql:true});
const httpServer = createServer((request, response) => {
response.writeHead(404);
response.end();
});
httpServer.listen(WS_PORT);
const server = new SubscriptionServer({ subscriptionManager }, httpServer);
const app = express();
const storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, 'uploads');
},
filename: function (req, file, callback) {
console.log(file);
var filename = file.originalname;
var fileExtension = filename.split(".")[1];
callback(null, Date.now() + "." + fileExtension);
}
});
const upload = multer({
storage: storage
});
app.use('/graphql',
upload.array('files'),
bodyParser.json(),
graphqlExpressUpload({ endpointURL: '/graphql' }), // after multer and before graphqlExpress
graphqlExpress((req) => {
console.log('req', req);
return {
schema,
context: {}
}
})
);
app.use('/graphiql', graphiqlExpress({
endpointURL: '/graphql',
}));in resolver.js
async uploadProfilePicture(root, { id, files }, context) {
//the result of files was like [ { preview: 'blob:http://localhost:3000/8d38f565-7846' } ] }
console.log('uploadProfilePicture', { id, files })
return uploadProfilePicture(id, files);
},in the result I got a blob url like { preview: 'blob:http://localhost:3000/8d38f565-7846' }
Please help.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels