やりたいこと Node.js (express) REST API PostgreSQL pg-promise 上記の環境で、PostgreSQLにINSERTした際にidで採番された値を取得し、REST APIのレスポンスに含めたい。 実装 PostgreSQLでは RETURNING を使うとINSERT, UPDATE, DELETE で SELECT文のようにデータを返す事ができる。 めっちゃ便利。 // POST: /api/user router.post( "/user" , (req, res, next) => { // パラメータの組み立て & パスワードのハッシュ化 const params = Object .assign({}, req.body); // ~~ 省略 ~~ // idはserial (自動採番)、insert後に採番したidを返す const query = `insert into users ( name, mail, password ) values ( \${name}, \${mail}, \${password} ) returning id`; db.one(query, params) .then((data) => { console.log(data); // idをセット const id = data.id; res.status( 201 ).json({ status: "created" , message: `http: //localhost:${port}/api/user/${id}` }); }) .catch((err) => { return next(err); }); }); id以外の列も当然返せる。 更新日時なんかも返せるので、セッションテーブルのUPDATEと日時の取得をひとつのクエリで実施できる。 参考 知って得するPostgreSQLのRE...
投稿時にscriptタグが削除されてるなー。面倒だからこのままでいいか...
返信削除