@rankmyseo/server-express
v1.0.2
Published
Express adapter for RankMySEO server handler
Maintainers
Readme
@rankmyseo/server-express
Express adapter for RankMySEO — mounts the full @rankmyseo/server API as Express middleware. Requires Node.js ≥ 20.
Install
npm i @rankmyseo/server-express @rankmyseo/core @rankmyseo/storage expressexpress is a peer dependency (^4 or ^5).
Usage
import express from "express";
import { defineConfig } from "@rankmyseo/core";
import { createStore } from "@rankmyseo/storage";
import { createRankMySeoExpress } from "@rankmyseo/server-express";
const store = createStore("sqlite:///path/to/db.sqlite");
const config = defineConfig({
databaseUrl: "sqlite:///path/to/db.sqlite",
tenantId: "tenant-a",
projectId: "project-1",
dataSources: [{ provider: "fixture", default: true }],
});
const app = express();
app.use(createRankMySeoExpress(store, { config }));
app.listen(3000);Mount under a subpath with matching basePath (the adapter uses req.originalUrl):
app.use(
"/api/rankmyseo",
createRankMySeoExpress(store, { config, basePath: "/api/rankmyseo" }),
);toNodeHandler
Wrap any (Request) => Promise<Response> handler (including raw createHandler) as Express middleware:
import { createHandler } from "@rankmyseo/server";
import { toNodeHandler } from "@rankmyseo/server-express";
app.use(toNodeHandler(createHandler(store, { config })));Streaming responses (e.g. agent chat) are piped from the Web Response body onto Express res as a best-effort stream.
Documentation
See the Wiki → Getting Started.
License
Apache-2.0
