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 logger = require('morgan');
|
||||||
|
|
||||||
var indexRouter = require('./routes/index');
|
var indexRouter = require('./routes/index');
|
||||||
var usersRouter = require('./routes/users');
|
var punRouter = require('./routes/pun');
|
||||||
|
|
||||||
var app = express();
|
var app = express();
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ app.use(cookieParser());
|
|||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, 'public')));
|
||||||
|
|
||||||
app.use('/', indexRouter);
|
app.use('/', indexRouter);
|
||||||
app.use('/users', usersRouter);
|
app.use('/pun', punRouter);
|
||||||
|
|
||||||
// catch 404 and forward to error handler
|
// catch 404 and forward to error handler
|
||||||
app.use(function(req, res, next) {
|
app.use(function(req, res, next) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ var router = express.Router();
|
|||||||
|
|
||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
router.get('/', function(req, res, next) {
|
router.get('/', function(req, res, next) {
|
||||||
res.render('index', { title: 'Express' });
|
res.render('index', { title: 'The Punisher' });
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = router;
|
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>
|
<h1>{{title}}</h1>
|
||||||
<p>Welcome to {{title}}</p>
|
<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