Quick Express

Posted on October 2, 2021
Tags: javascript

1 POST request

let urlencodedParser = bodyParser.urlencoded({ extended: false })
app.post('/register', urlencodedParser, async (req,res) => {..}

2 async await

await f()
console.log('hi')
f.then(()=> console.log('hi'))
//BAD - DOESNT WORK 
  const rawDB = await fs.readFile("accounts.json",(err,data) => { return data})
  console.log(rawDB);
//GOOD - we wrap the readFile into a promise
const readFilePromisfied = async (filepath) => {
  return new Promise((resolve,reject) => {
    fs.readFile(filepath,'utf-8', (err,data)=>{
      if (err) {reject(err)};
      resolve(data);
    })
  })
}

const rawDB = awaitreadFilePromisfied("accounts.json");
console.log(rawDB);

3 Login Registration system

Notice BOTH Registration and Login require bcrypt for hashing and hashcomparison.
ONLY Login requires JWT for stateful access to member-services.

4 Dynamic routes

app.get('/:bleh', (req, res) => {
  console.log(req.params.bleh)
  res.send(req.params.bleh)
})