⛳
expressを、vercel に設置する
概要:
node/express を、vercelにデプロイして使う例になります
構成
- express
- node.js: 14
- vercel
- typescript
関連
参考のコード
設定
- 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
非常に興味深い記事をありがとうございます。
こちらはvercelの物理サーバがメンテ時に再起動されたりしても耐えられるのでしょうか?