Open6

Remix 2 handler + adapter Express, API連携 試作メモ

knaka Tech-Blogknaka Tech-Blog

概要

Remix handler + adapter, expressで。API連携などメモになります

  • POST通信で、Formタグ等使用など一般的に見えますが。
  • 指定フォルダにAPI設置する方法なります。
  • テストは、 stackblitz.comで確認しました。

[ 公開: 2024/06/01 ]


環境

  • @remix-run/node: 2.8.1
  • express
  • @remix-run/express

関連


作成したコード

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


Stackblitz


説明など

  • 上記、関連ページ参考で、adapter経由でRemix request送信できそうでした。

  • install

npm i express @remix-run/express
  • nodemon使う場合、下記
npm i -D nodemon rimraf

  • server
server.js
import remix from "@remix-run/express";
import express  from "express";

const app = express();
app.use(express.static("public"));
//
import * as build from "./build/server/index.js";
//
app.all(
  "*",
  remix.createRequestHandler({
    build: build,
  })
);
app.listen(3000, () => {
  console.log("App listening on http://localhost:3000");
});

  • server実行, JS version
npx remix vite:build

#
node server.js

TS-version

  • src/server.ts

https://github.com/kuc-arc-f/remix49/blob/main/src/server.ts


  • build, dev-start
  • esbuild で、server部分をトランスパイルします。
  • nodemon で、起動する例です。
yarn build
#
yarn dev

  • tree: app/ 下
.
├── api
│   └── test.ts
├── components
│   ├── Head.tsx
│   └── LoadBox.tsx
├── entry.client.tsx
├── entry.server.tsx
├── root.tsx
├── routes
│   ├── Test.tsx
│   ├── _index.tsx
│   └── about.tsx
└── server.ts

3 directories, 10 files

  • src/api/test.ts

https://github.com/kuc-arc-f/remix49/blob/main/src/api/test.ts


  • app/routes/Test.tsx
  • fetch POST通信、express APIレスポンスを受信できました

https://github.com/kuc-arc-f/remix49/blob/main/app/routes/Test.tsx


今回までの。まとめ

  • 内部API連携できる
  • Formタグ無しで。server側 POST通信できる
  • TSコードで全て実装できる(ツール等以外)
  • Express実装で、server機能(ミドルウェアなど) おそらく追加できる。

knaka Tech-Blogknaka Tech-Blog

Postgres 外部API 追加

  • 上記の、workers API連携と、似ている構成です。
  • 外部API連携で、postgres操作する例になります
  • supabase使う例です
  • CRUD 一部、追加しました。

作成したコード

https://github.com/kuc-arc-f/remix49/tree/main/sample/pg_api



  • List, Create など

https://github.com/kuc-arc-f/remix49/blob/main/sample/pg_api/app/routes/ApiTest.tsx

knaka Tech-Blogknaka Tech-Blog

mermaid.js ,ER図作成を追加

  • mermaid.js追加し。各種の図を表示する機能を追加しました
  • mermaidデータは、D1に保存し。外部API経由で操作します

作成したコード

https://github.com/kuc-arc-f/remix49/tree/main/sample/er_chart


  • MdTestShow.tsx: 詳細、mermaid 変換
  • データは、一覧画面で保存可能です。

https://github.com/kuc-arc-f/remix49/blob/main/sample/er_chart/app/routes/MdTestShow.tsx


  • 画像変換後の画面 (stackblitz.com の画面です)