working and dockerized
This commit is contained in:
11
Dockerfile
Normal file
11
Dockerfile
Normal 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
4
app.js
@@ -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) {
|
||||
|
||||
@@ -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
25
routes/pun.js
Normal 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;
|
||||
@@ -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;
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user