33
loading...
This website collects cookies to deliver better user experience
const app = require('./app')
const port = 3000
app.listen(port)
console.log(`listening on http://localhost:${port}`)
const serverlessExpress = require('@vendia/serverless-express')
const app = require('./app');
exports.handler = serverlessExpress({ app })
const express = require('express')
const app = express()
const router = express.Router()
const bodyParser = require('body-parser')
const cors = require('cors')
const path = require('path')
let FruitBox = [];
//Static content ie images
app.use('/static', express.static('static'))
router.use(cors())
router.use(bodyParser.json())
router.use(bodyParser.urlencoded({ extended: true }))
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
router.get('/', function(req, res) {
res.render('index', { fruitBox: FruitBox })
})
router.get('/index', function(req, res) {
res.render('index', { fruitBox: FruitBox })
})
router.get('/react', function(req, res) {
res.render('react')
})
router.get("/ping", async (req, res) => {
const result = { incomming : 'ping ', resonse : 'pong '}
res.send(JSON.stringify(result))
});
router.get("/fruitbox", async (req, res) => {
res.send(JSON.stringify(FruitBox))
});
router.get("/fruitbox/:item", async (req, res) => {
const item = parseInt(req.params.item)
res.send(JSON.stringify(FruitBox[item]))
});
router.post('/fruitbox', async (req, res) => {
let result
try{
const fruitName = req.body.fruitName;
const qty = req.body.qty;
const item = { fruit: fruitName, qty : qty}
FruitBox.push(item)
result = FruitBox
res.status(200)
}catch(e){
console.log(e)
result = { errorMessage : 'Ensure your POST body contains both a fruitName and a qty and content type is application/json '}
res.status(500);
}
res.send(result)
})
app.use('/', router)
module.exports = app;
{
"name": "FruitBox",
"version": "1.0.0",
"description": "Express JS in AWS Lambda deployed to AWS Lambda via SAM",
"main": "app.js",
"repository": "https://github.com/kukielp/aws-sam-nodejs-express",
"author": "Paul Kukiel",
"license": "MIT",
"dependencies": {
"@vendia/serverless-express": "^4.3.2",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"ejs": "^3.1.6",
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^2.0.11",
"npm-watch": "^0.7.0"
},
"scripts": {
"dev": "nodemon app.local.js"
}
}
npm install
npm run dev
[]