Write a small node web app with display a result of a rest api.
1. No framework
preparation for local server
mkdir samplecd samplenpm init
find a sample rest api server
my recommendation is
https://catfact.ninja/fact
varhttp=require('http'),https=require('https')http.createServer((req,res)=>{console.log(req.url)https.get('https://catfact.ninja/fact',(r)=>{console.log(r.statusCode)r.on('data',(d)=>{obj=JSON.parse(d)res.writeHead(200,{'Content-Type':'text/html'})res.write(`<h1>${obj.fact}</h1>`)res.write(`<h2>${obj.length}</h2>`)res.end()})}).on('error',(e)=>{console.error(e)})}).listen(8080)
2. Let's use Express
Why Express?
Above code has 2 issues.
- Unexpected 2 request to the catfact occurs because of favicon.
- No process deal with http chunk.
Using the Express is easy way to fix 1st one.
installation web framework
npminstallexpress--save
varexpress=require('express'),app=express(),https=require('https')app.get('/',(req,res)=>{letdata=''https.get('https://catfact.ninja/facts?limit=1000',(r)=>{console.log(r.statusCode)r.on('data',(chunk)=>{data+=chunk})r.on('end',()=>{objs=JSON.parse(data)letmsgobjs.data.forEach((obj)=>msg+=`<h1>${obj.fact}</h1>`)res.send(msg)})}).on('error',(e)=>{console.error(e)})})app.listen(8080)
Appendix
If you want to pack your app in a docker container.
Read below.
Top comments(0)
Subscribe
For further actions, you may consider blocking this person and/orreporting abuse