だら$ちっぷす

仕事の覚書です

Node.js app.getで引数を2つ受け取るやつ

★2019-12-19 これもasyncで書き直しました!
  (関数をasyncって宣言すると、その関数内ではawaitってキャストした関数が
   同期になるよ!ただしpromise返すやつだけ)

【サーバ側】

app.get( '/sql/get_qno/dbname/:dbname/userid/:userid/',
async (req, res) => 
{
    const dbname = req.params.dbname; //データベース名
    const userid = req.params.userid;     //ユーザID

    //SQL文作成
    const sql = 'select COALESCE(max("qno"), 0) as maxqno from ' + dbname + ' where "userid" = \'' + userid + '\'';

    try
    {
        const resq = await client.query(sql);
        res.json(resq.rows);
    }
    catch(err)
    {
        res.json(["ERROR", err.stack]);
    }
});


【ブラウザ側】

async function getQNo()
{
    try
    {
        const res = await fetch('./sql/get_qno/dbname/' + dbName + '/userid/' + userId);
        const data = await res.json();
        QNo = data[0].maxqno;
    }
    catch(err)
    {
        res.json(["ERROR", err.stack]);
    }
}