expressを、vercel に設置する

2021/11/11に公開1

概要:

node/express を、vercelにデプロイして使う例になります


構成

  • express
  • node.js: 14
  • vercel
  • typescript

関連

https://dev.to/hte305/deploy-express-js-app-to-vercel-38jb


参考のコード

https://github.com/kuc-arc-f/express_2021ts_pub


設定

  • vercel.json を、追加

{
  "version": 2,
  "builds": [
    {
      "src": "dist/src/index.js",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/.*",
      "dest": "/dist/src/index.js"
    }
  ]
}
  • package.json
{
  "scripts": {
    "start": "ts-node src/index.ts",
    "build": "rimraf dist && tsc",
    "deploy": "npm run build && vercel --prod"
  },
  "devDependencies": {
    "@types/express": "^4.17.8",
    "rimraf": "^3.0.2",
    "ts-node": "^9.1.1",
    "typescript": "^4.0.2"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

  • src/index.ts, ルーティングを / のみ設定しておきます。
index.ts

const express = require('express');
const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.get('/', (req: any, res: any) => {
  try {
    res.send({ name: "hoge" });
  } catch (error) {
    res.sendStatus(500);
  }
});

//app.listen(process.env.PORT || 3000);
app.listen({ port: 3000 }, () => {
  console.log(`Server ready at http://localhost:3000`);
});
console.log('starts');

export default app;

  • テスト起動/ ローカル
yarn build
yarn start


  • vercelデプロイは、github経由でデプロイしました。

設置ドメイン.vercel.app を開くと、ページが開けました

....

Discussion

korokorotechkorokorotech

非常に興味深い記事をありがとうございます。
こちらはvercelの物理サーバがメンテ時に再起動されたりしても耐えられるのでしょうか?