I’m using Meteor 2.2, is there any way I can access the request raw body? I’m trying to work with Stripe and stuck at signature checking step.
1 Like
I have managed it this way:
import { WebApp } from 'meteor/webapp'
import bodyParser from 'body-parser'
WebApp.connectHandlers.use((req, res, next) => {
if (req.originalUrl === '/wh/stripe') {
// Stripe requires the raw body to construct the event
bodyParser.raw({ type: 'application/json' })(req, res, next)
} else {
bodyParser.json()(req, res, next)
}
})
2 Likes
Thank you, it works.
I found that my app uses bodyParser.json() in another place.
1 Like
In Meteor 3 you can get json from express directly and reduce a dependency:
import { WebApp } from 'meteor/webapp'
const express = WebApp.express
// Example use with GraphQL
WebApp.handlers.use(
'/graphql', // Configure the path as you want.
express.json(),
expressMiddleware(server, { context }), // From `@apollo/server/express4`.
)
1 Like
Does Apollo server v4 work well? I’m still using apollo-server-express v3.
Yes, I’m using the latest without any problems. You will need to migrate some stuff, but you can find info on that in the official docs and around here for the Meteor part. If you have issues let me know and I can copy over my setup for you to compare.
1 Like