Skip to content

Commit b804613

Browse files
committed
update nodejs express server samples
1 parent 86a293e commit b804613

File tree

3 files changed

+35
-35
lines changed

3 files changed

+35
-35
lines changed

samples/server/petstore/nodejs-express-server/controllers/Controller.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class Controller {
4343
static collectFile(request, fieldName) {
4444
let uploadedFileName = '';
4545
if (request.files && request.files.length > 0) {
46-
const fileObject = request.files.find(file => file.fieldname === fieldName);
46+
const fileObject = request.files.find((file) => file.fieldname === fieldName);
4747
if (fileObject) {
4848
const fileArray = fileObject.originalname.split('.');
4949
const extension = fileArray.pop();
@@ -70,7 +70,7 @@ class Controller {
7070

7171
static collectRequestParams(request) {
7272
const requestParams = {};
73-
if (request.openapi.schema.requestBody !== undefined) {
73+
if (request.openapi.schema.requestBody !== null) {
7474
const { content } = request.openapi.schema.requestBody;
7575
if (content['application/json'] !== undefined) {
7676
const requestBodyName = camelCase(this.getRequestBodyName(request));
@@ -89,15 +89,17 @@ class Controller {
8989
}
9090
}
9191

92-
request.openapi.schema.parameters.forEach((param) => {
93-
if (param.in === 'path') {
94-
requestParams[param.name] = request.openapi.pathParams[param.name];
95-
} else if (param.in === 'query') {
96-
requestParams[param.name] = request.query[param.name];
97-
} else if (param.in === 'header') {
98-
requestParams[param.name] = request.headers[param.name];
99-
}
100-
});
92+
if (request.openapi.schema.parameters !== undefined) {
93+
request.openapi.schema.parameters.forEach((param) => {
94+
if (param.in === 'path') {
95+
requestParams[param.name] = request.openapi.pathParams[param.name];
96+
} else if (param.in === 'query') {
97+
requestParams[param.name] = request.query[param.name];
98+
} else if (param.in === 'header') {
99+
requestParams[param.name] = request.headers[param.name];
100+
}
101+
});
102+
}
101103
return requestParams;
102104
}
103105

samples/server/petstore/nodejs-express-server/expressServer.js

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const express = require('express');
88
const cors = require('cors');
99
const cookieParser = require('cookie-parser');
1010
const bodyParser = require('body-parser');
11-
const { OpenApiValidator } = require('express-openapi-validator');
11+
const OpenApiValidator = require('express-openapi-validator');
1212
const logger = require('./logger');
1313
const config = require('./config');
1414

@@ -32,11 +32,11 @@ class ExpressServer {
3232
this.app.use(express.json());
3333
this.app.use(express.urlencoded({ extended: false }));
3434
this.app.use(cookieParser());
35-
//Simple test to see that the server is up and responding
35+
// Simple test to see that the server is up and responding
3636
this.app.get('/hello', (req, res) => res.send(`Hello World. path: ${this.openApiPath}`));
37-
//Send the openapi document *AS GENERATED BY THE GENERATOR*
37+
// Send the openapi document *AS GENERATED BY THE GENERATOR*
3838
this.app.get('/openapi', (req, res) => res.sendFile((path.join(__dirname, 'api', 'openapi.yaml'))));
39-
//View the openapi document in a visual interface. Should be able to test from this page
39+
// View the openapi document in a visual interface. Should be able to test from this page
4040
this.app.use('/api-docs', swaggerUI.serve, swaggerUI.setup(this.schema));
4141
this.app.get('/login-redirect', (req, res) => {
4242
res.status(200);
@@ -46,30 +46,28 @@ class ExpressServer {
4646
res.status(200);
4747
res.json(req.query);
4848
});
49+
this.app.use(
50+
OpenApiValidator.middleware({
51+
apiSpec: this.openApiPath,
52+
operationHandlers: path.join(__dirname),
53+
fileUploader: { dest: config.FILE_UPLOAD_PATH },
54+
}),
55+
);
4956
}
5057

5158
launch() {
52-
new OpenApiValidator({
53-
apiSpec: this.openApiPath,
54-
operationHandlers: path.join(__dirname),
55-
fileUploader: { dest: config.FILE_UPLOAD_PATH },
56-
}).install(this.app)
57-
.catch(e => console.log(e))
58-
.then(() => {
59-
// eslint-disable-next-line no-unused-vars
60-
this.app.use((err, req, res, next) => {
61-
// format errors
62-
res.status(err.status || 500).json({
63-
message: err.message || err,
64-
errors: err.errors || '',
65-
});
66-
});
67-
68-
http.createServer(this.app).listen(this.port);
69-
console.log(`Listening on port ${this.port}`);
59+
// eslint-disable-next-line no-unused-vars
60+
this.app.use((err, req, res, next) => {
61+
// format errors
62+
res.status(err.status || 500).json({
63+
message: err.message || err,
64+
errors: err.errors || '',
7065
});
71-
}
66+
});
7267

68+
http.createServer(this.app).listen(this.port);
69+
console.log(`Listening on port ${this.port}`);
70+
}
7371

7472
async close() {
7573
if (this.server !== undefined) {

samples/server/petstore/nodejs-express-server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"cookie-parser": "^1.4.4",
2020
"cors": "^2.8.5",
2121
"express": "^4.16.4",
22-
"express-openapi-validator": "^3.9.1",
22+
"express-openapi-validator": "^4.13.8",
2323
"js-yaml": "^3.3.0",
2424
"ono": "^5.0.1",
2525
"openapi-sampler": "^1.0.0-beta.15",

0 commit comments

Comments
 (0)