Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

無料でSSR・ホスティング・API鯖を立てれるVercel。TypeScript・ExpressでAPI鯖を立てる。

$
0
0

Vercel
https://vercel.com

無料で有名なFaaS(Function as a Service)の
Firebase FunctionsNetlify Functionsより使い勝手がいいと思う。

GitHubの捨てアカ作ってログインしようとしたら弾かれた
たぶんアカを作ってからある程度時間が経たないと弾かれるっぽい。

ソースコード

package.json
{"scripts":{"ts-build":"webpack --mode production"},"devDependencies":{"@types/express":"^4.17.8","ts-loader":"^8.0.3","typescript":"^4.0.2","webpack":"^4.44.1","webpack-cli":"^3.3.12","webpack-node-externals":"^2.5.2"},"dependencies":{"express":"^4.17.1","vercel":"^20.1.0"}}
src/index.ts
import*asExpressfrom'express';constapp=Express();// postリクエスト使えるようにするapp.use(Express.json());app.use(Express.urlencoded({extended:true}));app.get('/get/:name',(req:Express.Request,res:Express.Response)=>{try{res.send({name:req.params.name});}catch(error){res.sendStatus(500);}});app.post('/post',(req:Express.Request,res:Express.Response)=>{try{res.send({name:req.body.name});}catch(error){res.sendStatus(500);}});if(!process.env.NOW_REGION){app.listen(process.env.PORT||3000);}exportdefaultapp;
tsconfig.json
{"compilerOptions":{"baseUrl":"./","paths":{"src/*":["src/*"]},"strict":true}}
vercel.json
{"version":2,"builds":[{"src":"index.js","use":"@now/node-server"}],"routes":[{"src":"/.*","dest":"/index.js"}]}
webpack.config.js
constpath=require('path');constnodeExternals=require('webpack-node-externals');module.exports={// モード値を production に設定すると最適化された状態で、// development に設定するとソースマップ有効でJSファイルが出力されるmode:'development',entry:'./src/index.ts',// ファイルの出力設定output:{path:`${__dirname}/`,filename:'index.js',libraryTarget:'this',},module:{rules:[{test:/\.ts$/,exclude:/node_modules/,loader:'ts-loader',options:{configFile:path.resolve(__dirname,'tsconfig.json'),},},],},// import 文で .ts ファイルを解決するため// これを定義しないと import 文で拡張子を書く必要が生まれる。resolve:{// 拡張子を配列で指定extensions:['.ts','.js'],alias:{src:path.resolve(__dirname,'src'),},},externals:[nodeExternals()],};
.gitignore
.vercel
node_modules
index.js

コマンド

TypeScriptをビルド

$ npm run ts-build

ローカルで実行 ポート番号3000で鯖が立ち上がる

$ npx vercel dev

デプロイ

$ npx vercel --prod

ワイの成果物

https://qiita.com/yuzuru2/items/b5a34ad07d38ab1e7378

①コード共有サイト(SPA) React
https://code.itsumen.com

②画像共有サイト(SPA) React
https://gazou.itsumen.com

③チャット(SSR) Nuxt.js
https://nuxtchat.itsumen.com

④チャット(SPA) React
https://chat4.itsumen.com

⑤掲示板(SSR) Next.js
https://board.itsumen.com

⑥掲示板(SPA) Vue
https://board.itsumen.com

⑦レジの店員を呼ぶスマホアプリ(Android)
https://play.google.com/store/apps/details?id=com.itsumen.regi&hl=ja

⑧ブログ(静的サイトジェネレータ) Hugo
https://yuzuru.itsumen.com


Viewing all articles
Browse latest Browse all 8691

Trending Articles