Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 958c4af

Browse files
update express apps
1 parent d7efde3 commit 958c4af

File tree

5 files changed

+107
-108
lines changed

5 files changed

+107
-108
lines changed

‎functions/app/index.js

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,41 @@ import bodyParser from 'body-parser'
66
import compression from 'compression'
77
import customLogger from '../utils/logger'
88

9+
/* My express App */
910
export default function expressApp(functionName) {
10-
/* My express App */
11+
1112
const app = express()
1213
const router = express.Router()
14+
15+
// gzip responses
1316
router.use(compression())
1417

1518
// Set router base path for local dev
1619
const routerBasePath = (process.env.NODE_ENV === 'dev') ? `/${functionName}` : `/.netlify/functions/${functionName}/`
1720

1821
/* define routes */
22+
router.get('/', (req, res) => {
23+
console.log('home route hit')
24+
const html = `
25+
<html>
26+
<head>
27+
</head>
28+
<body>
29+
<h1>
30+
⊂◉‿◉つ I'm using Express in a lambda via '${functionName}'
31+
</h1>
32+
33+
<a href='/.netlify/functions/${functionName}/users'>View users</a>
34+
<br/>
35+
36+
<a href='/'>Back home</a>
37+
38+
</body>
39+
</html>
40+
`
41+
res.send(html)
42+
})
43+
1944
router.get('/users', (req, res) => {
2045
res.json({
2146
users: [{
@@ -26,25 +51,6 @@ export default function expressApp(functionName) {
2651
})
2752
})
2853

29-
router.get('/', (req, res) => {
30-
console.log('home route hit')
31-
const html = `
32-
<html>
33-
<head>
34-
</head>
35-
<body>
36-
<h1>
37-
⊂◉‿◉つ I'm using Express in a lambda via '${functionName}'
38-
</h1>
39-
40-
<a href='/.netlify/functions/${functionName}/users'>View users</a>
41-
</body>
42-
</html>
43-
`
44-
45-
res.send(html)
46-
})
47-
4854
router.get('/hello/', function(req, res){
4955
res.send('hello world')
5056
})
@@ -55,6 +61,7 @@ export default function expressApp(functionName) {
5561
// Setup routes
5662
app.use(routerBasePath, router)
5763

64+
// Apply express middlewares
5865
router.use(cors())
5966
router.use(bodyParser.json())
6067
router.use(bodyParser.urlencoded({ extended: true }))

‎functions/aws-serverless-express.js

Lines changed: 9 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,18 @@
1+
/* example using https://github.com/awslabs/aws-serverless-express */
12
import express from 'express'
23
import awsServerlessExpress from 'aws-serverless-express'
3-
import cors from 'cors'
4-
import morgan from 'morgan'
5-
import bodyParser from 'body-parser'
6-
import compression from 'compression'
7-
import awsServerlessExpressMiddleware from 'aws-serverless-express/middleware'
8-
import customLogger from './utils/logger'
4+
import binaryMimeTypes from './utils/binaryMimeTypes'
5+
import expressApp from './app'
96

10-
const app = express()
11-
const router = express.Router()
12-
13-
router.use(compression())
14-
15-
app.use(morgan(customLogger))
16-
17-
router.get('/users', (req, res) => {
18-
res.json({
19-
users: [{
20-
name: 'steve'
21-
}, {
22-
name: 'joe',
23-
}]
24-
})
25-
})
26-
27-
router.get('/', (req, res) => {
28-
const html = `
29-
<html>
30-
<head>
31-
</head>
32-
<body>
33-
<h1>
34-
⊂◉‿◉つ I'm using Express in a lambda via 'aws-serverless-express'
35-
</h1>
36-
37-
<a href='/.netlify/functions/aws-serverless-express/users'>View users route</a>
38-
</body>
39-
</html>
40-
`
41-
42-
res.send(html)
43-
})
44-
45-
router.get('/hello/', function(req, res){
46-
res.send('hello world')
47-
})
48-
49-
app.use('/.netlify/functions/aws-serverless-express/', router)
50-
51-
router.use(cors())
52-
router.use(bodyParser.json())
53-
router.use(bodyParser.urlencoded({ extended: true }))
54-
router.use(awsServerlessExpressMiddleware.eventContext())
55-
56-
const binaryMimeTypes = [
57-
'application/javascript',
58-
'application/json',
59-
'application/octet-stream',
60-
'application/xml',
61-
'font/eot',
62-
'font/opentype',
63-
'font/otf',
64-
'image/jpeg',
65-
'image/png',
66-
'image/svg+xml',
67-
'text/comma-separated-values',
68-
'text/css',
69-
'text/html',
70-
'text/javascript',
71-
'text/plain',
72-
'text/text',
73-
'text/xml'
74-
]
7+
// We need to define our function name for express routes to set the correct base path
8+
const functionName = 'aws-serverless-express'
9+
// Initialize express app
10+
const app = expressApp(functionName)
7511

12+
// Initialize awsServerlessExpress
7613
const server = awsServerlessExpress.createServer(app, null, binaryMimeTypes)
7714

15+
// Export Lambda handler
7816
exports.handler = (event, context) => {
7917
return awsServerlessExpress.proxy(server, event, context)
8018
}

‎functions/aws-serverless.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

‎functions/serverless-http.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
/* example using https://github.com/dougmoscrop/serverless-http */
12
import serverless from 'serverless-http'
23
import expressApp from './app'
34

4-
// We need to define our function name for
5+
// We need to define our function name for express routes to set the correct base path
56
const functionName = 'serverless-http'
6-
console.log('__filename', __filename)
7+
8+
// Initialize express app
79
const app = expressApp(functionName)
810

11+
// Export lambda handler
912
exports.handler = serverless(app)
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import express from 'express'
2+
import awsServerlessExpress from 'aws-serverless-express'
3+
import cors from 'cors'
4+
import morgan from 'morgan'
5+
import bodyParser from 'body-parser'
6+
import compression from 'compression'
7+
import awsServerlessExpressMiddleware from 'aws-serverless-express/middleware'
8+
import customLogger from './utils/logger'
9+
import binaryMimeTypes from './utils/binaryMimeTypes'
10+
11+
const app = express()
12+
const router = express.Router()
13+
14+
/* We need to set our base path for express to match on our function route */
15+
const functionName = 'standalone-aws-serverless-express-example'
16+
const basePath = `/.netlify/functions/${functionName}/`
17+
18+
router.use(compression())
19+
20+
app.use(morgan(customLogger))
21+
22+
router.get('/users', (req, res) => {
23+
res.json({
24+
users: [{
25+
name: 'steve'
26+
}, {
27+
name: 'joe',
28+
}]
29+
})
30+
})
31+
32+
router.get('/', (req, res) => {
33+
const html = `
34+
<html>
35+
<head>
36+
</head>
37+
<body>
38+
<h1>
39+
⊂◉‿◉つ I'm using Express in a lambda via '${functionName}'
40+
</h1>
41+
42+
<a href='/.netlify/functions/${functionName}/users'>
43+
View users route
44+
</a>
45+
</body>
46+
</html>
47+
`
48+
// send back HTML
49+
res.send(html)
50+
})
51+
52+
app.use(basePath, router)
53+
54+
// Apply express middlewares
55+
router.use(cors())
56+
router.use(bodyParser.json())
57+
router.use(bodyParser.urlencoded({ extended: true }))
58+
router.use(awsServerlessExpressMiddleware.eventContext())
59+
60+
// Initialize awsServerlessExpress
61+
const server = awsServerlessExpress.createServer(app, null, binaryMimeTypes)
62+
63+
// Export lambda handler
64+
exports.handler = (event, context) => {
65+
return awsServerlessExpress.proxy(server, event, context)
66+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /