Skip to content

Commit fe68c1b

Browse files
Fix/use express built in json middleware (#7740)
Use built-in `express.json()` functionality instead of separate `body-parser` package. --------- Co-authored-by: Trevor Scheer <trevor.scheer@gmail.com>
1 parent f71d045 commit fe68c1b

File tree

12 files changed

+1493
-121
lines changed

12 files changed

+1493
-121
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@apollo/server-integration-testsuite': patch
3+
'@apollo/server': patch
4+
---
5+
6+
Uninstalled `body-parser` and used `express` built-in `body-parser` functionality instead(mainly the json middleware)

package-lock.json

Lines changed: 0 additions & 101 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
"@josephg/resolvable": "1.0.1",
5252
"@rollup/plugin-commonjs": "25.0.7",
5353
"@types/async-retry": "1.4.7",
54-
"@types/body-parser": "1.19.4",
5554
"@types/compression": "1.7.4",
5655
"@types/cors": "2.8.15",
5756
"@types/express": "4.17.20",
@@ -74,7 +73,6 @@
7473
"@typescript-eslint/parser": "5.62.0",
7574
"@vendia/serverless-express": "4.10.4",
7675
"awaiting": "3.0.0",
77-
"body-parser": "1.20.2",
7876
"codecov": "3.8.3",
7977
"compression": "1.7.4",
8078
"cors": "2.8.5",

packages/integration-testsuite/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,10 @@
2929
"@apollo/cache-control-types": "^1.0.3",
3030
"@apollo/client": "^3.6.9",
3131
"@apollo/server": "4.9.5",
32-
"@apollo/utils.keyvaluecache": "^2.1.0",
33-
"@apollo/utils.createhash": "^2.0.0",
3432
"@apollo/usage-reporting-protobuf": "^4.1.1",
33+
"@apollo/utils.createhash": "^2.0.0",
34+
"@apollo/utils.keyvaluecache": "^2.1.0",
3535
"@josephg/resolvable": "^1.0.1",
36-
"body-parser": "^1.20.0",
3736
"express": "^4.18.1",
3837
"graphql-http": "1.22.0",
3938
"graphql-tag": "^2.12.6",

packages/integration-testsuite/src/apolloServerTests.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import http from 'http';
22
import { createHash } from '@apollo/utils.createhash';
33
import express from 'express';
4-
import bodyParser from 'body-parser';
54
import loglevel from 'loglevel';
65

76
import { Report, Trace } from '@apollo/usage-reporting-protobuf';
@@ -874,7 +873,7 @@ export function defineIntegrationTestSuiteApolloServerTests(
874873
next();
875874
});
876875
this.app.use(
877-
bodyParser.raw({
876+
express.raw({
878877
inflate: true,
879878
type: '*/*',
880879
}),

packages/server/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,10 @@
137137
"@apollo/utils.withrequired": "^2.0.0",
138138
"@graphql-tools/schema": "^9.0.0",
139139
"@josephg/resolvable": "^1.0.0",
140-
"@types/express-serve-static-core": "^4.17.30",
141140
"@types/express": "^4.17.13",
141+
"@types/express-serve-static-core": "^4.17.30",
142142
"@types/node-fetch": "^2.6.1",
143143
"async-retry": "^1.2.1",
144-
"body-parser": "^1.20.0",
145144
"cors": "^2.8.5",
146145
"express": "^4.17.1",
147146
"loglevel": "^1.6.8",

packages/server/src/__tests__/express4/expressSpecific.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
import express from 'express';
1+
import express, { json } from 'express';
22
import request from 'supertest';
33
import compression, { filter as defaultFilter } from 'compression';
44
import { ApolloServer, BaseContext } from '../../index.js';
55
import { expressMiddleware } from '../../express4/index.js';
66
import { it, expect } from '@jest/globals';
77
import resolvable from '@josephg/resolvable';
88
import cors from 'cors';
9-
import { json } from 'body-parser';
109

11-
it('gives helpful error if body-parser middleware is not installed', async () => {
10+
it('gives helpful error if json middleware is not installed', async () => {
1211
const server = new ApolloServer({ typeDefs: 'type Query {f: ID}' });
1312
await server.start();
1413
const app = express();
@@ -18,7 +17,7 @@ it('gives helpful error if body-parser middleware is not installed', async () =>
1817
await request(app)
1918
.post('/')
2019
.send({ query: '{hello}' })
21-
.expect(500, /forgot to set up the `body-parser`/);
20+
.expect(500, /forgot to set up the `json` middleware/);
2221
await server.stop();
2322
});
2423

packages/server/src/__tests__/express4/integration.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { json } from 'body-parser';
21
import cors from 'cors';
3-
import express from 'express';
2+
import express, { json } from 'express';
43
import http from 'http';
54
import { ApolloServer, ApolloServerOptions, BaseContext } from '@apollo/server';
65
import { expressMiddleware } from '@apollo/server/express4';

packages/server/src/__tests__/express4/integrationServerless.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { json } from 'body-parser';
21
import cors from 'cors';
3-
import express from 'express';
2+
import express, { json } from 'express';
43
import http from 'http';
54
import { ApolloServer, ApolloServerOptions, BaseContext } from '@apollo/server';
65
import { expressMiddleware } from '@apollo/server/express4';

packages/server/src/express4/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export function expressMiddleware<TContext extends BaseContext>(
5252
res.status(500);
5353
res.send(
5454
'`req.body` is not set; this probably means you forgot to set up the ' +
55-
'`body-parser` middleware before the Apollo Server middleware.',
55+
'`json` middleware before the Apollo Server middleware.',
5656
);
5757
return;
5858
}

0 commit comments

Comments
 (0)