Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@marko/run-adapter-node

Package Overview
Dependencies
Maintainers
7
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@marko/run-adapter-node

Preview and deploy @marko/run apps on Connect-style servers

latest
Source
npmnpm
Version
2.0.5
Version published
Weekly downloads
674
Maintainers
7
Weekly downloads
 
Created
Source

Marko Run Logo
@marko/run-adapter-node

Preview and deploy @marko/run apps on Connect-style servers

Installation

npm install @marko/run-adapter-node

Usage

In your application's Vite config file (eg. vite.config.js), import and register this adapter with the @marko/run Vite plugin:

import { defineConfig } from "vite";
import marko from "@marko/run/vite";
import nodeAdapter from "@marko/run-adapter-node";

export default defineConfig({
  plugins: [
    marko({
      adapter: nodeAdapter(),
    }),
  ],
});

Middleware

This package provides two different middlewares. Both middleware handle converting Connect-style requests to WHATWG requests and similarly writing WHATWG responses back to the Connect response.

Router Middleware

This middleware fully handles requests that match a route.

// my-app-server.ts
import express from "express";
import { routerMiddleware } from "@marko/run-adapter-node/middleware";

express()
  .use("/assets", express.static("assets"))
  .use(routerMiddleware()) // register the router middleware
  .listen(8080);

Match Middleware

This middleware attaches the matched route onto the request object where it can be invoked later. Along with an invoke function, the object will contain the route's meta data. This is useful if you have other middleware that need to run between finding a match and invoking the route.

// my-app-server.ts
import express from "express";
import { matchMiddleware } from "@marko/run-adapter-node/middleware";

express()
  .use("/assets", express.static("assets"))
  .use(matchMiddleware()) // register the match middleware
  // ...other middleware here
  .use((req, res, next) => {
    // `req.route` will be populated if the match middleware found a route
    if (req.route) {
      // do something with `req.route.config` which will contain the route's meta data
    }
    next();
  })
  .use((req, res, next) => {
    if (req.route) {
      // finally invoke the route handler
      req.route.invoke(req, res, next);
    } else {
      next();
    }
  })
  .listen(8080);

Build and Dev

For now, check out the examples directory for more info.

Keywords

marko

FAQs

Package last updated on 07 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts