working and dockerized

This commit is contained in:
2024-04-22 14:15:47 -05:00
parent 1234a29c1a
commit c918931c2e
6 changed files with 60 additions and 12 deletions

11
Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
FROM node:20-alpine
LABEL authors="deltreey"
COPY package.json .
COPY package-lock.json .
RUN npm install --production
COPY . .
ENTRYPOINT ["npm"]
CMD ["start"]

4
app.js
View File

@@ -5,7 +5,7 @@ var cookieParser = require('cookie-parser');
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var punRouter = require('./routes/pun');
var app = express();
@@ -20,7 +20,7 @@ app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/pun', punRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {

View File

@@ -3,7 +3,7 @@ var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
res.render('index', { title: 'The Punisher' });
});
module.exports = router;

25
routes/pun.js Normal file
View File

@@ -0,0 +1,25 @@
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', async function(req, res, next) {
let response = await fetch('https://v2.jokeapi.dev/joke/Pun?blacklistFlags=nsfw,explicit');
let jsonData = await response.json();
console.log(jsonData);
let joke = jsonData['joke'];
if (!joke) {
joke = jsonData['setup'] + '</br>' + jsonData['delivery'];
}
res.send(joke);
});
router.get('/query', async function(req, res, next) {
let word = req.query.word;
let response = await fetch('https://rhymezone.com/api/words?k=rza&arhy=1&max=500&qe=sl&md=fpdlr&sl=' + encodeURIComponent(word));
let jsonData = await response.json();
let result = jsonData.map((item) => item.word);
result.shift(); // the first answer is the word we sent
res.send(result);
});
module.exports = router;

View File

@@ -1,9 +0,0 @@
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;

View File

@@ -1,2 +1,23 @@
<h1>{{title}}</h1>
<p>Welcome to {{title}}</p>
<button id="btn-pun">Pun Me!</button>
<p id="pun"></p>
<input type="text" id="rhyme-word" />
<button id="btn-rhyme">Rhyme It!</button>
<p id="rhymes"></p>
<script>
document.querySelector('#btn-pun').addEventListener('click', () => {
fetch('/pun').then(response => response.text()).then(text => {
let textTag = document.querySelector('#pun');
textTag.innerHTML = text;
});
});
document.querySelector('#btn-rhyme').addEventListener('click', () => {
let word = document.querySelector('#rhyme-word').value;
fetch('/pun/query?word=' + encodeURIComponent(word)).then(response => response.json()).then(json => {
let textTag = document.querySelector('#rhymes');
textTag.innerHTML = json.join('</br>');
});
});
</script>