{"id":22353,"library":"server-base-router","title":"server-base-router","description":"A router plugin for the server-base framework, built on http-hash. Provides route definition, middleware support via @setup context.use(), and request/response helpers (req.json, res.notFound, res.error). Integrates with mime for content-type negotiation. Version 7.1.32 is current, with stable release cadence. Key differentiators: generator/async route support, splat params, and environment-based MIME configuration (MIME_TYPES, MIME_TYPES_PATH).","status":"active","version":"7.1.32","language":"javascript","source_language":"en","source_url":"git://github.com/jameskyburz/server-base","tags":["javascript","http router server-base middleware"],"install":[{"cmd":"npm install server-base-router","lang":"bash","label":"npm"},{"cmd":"yarn add server-base-router","lang":"bash","label":"yarn"},{"cmd":"pnpm add server-base-router","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"core routing logic","package":"http-hash","optional":false},{"reason":"content-type handling","package":"mime","optional":false},{"reason":"logging provided in @setup context","package":"server-base-log","optional":true}],"imports":[{"note":"Package uses CommonJS; no default export. Use require with '/router' path.","wrong":"import router from 'server-base-router'","symbol":"router","correct":"const router = require('server-base/router')"},{"note":"Alternatively, require('server-base-router') also works, but /router is canonical.","wrong":"import router from 'server-base-router'","symbol":"router (default)","correct":"const router = require('server-base-router')"}],"quickstart":{"code":"const http = require('http');\nconst router = require('server-base/router');\nconst routes = router({\n  '@setup': (ctx) => {\n    ctx.use((req, res, next) => {\n      console.log('middleware');\n      next();\n    });\n  },\n  '/hello/:name': (req, res, params) => {\n    res.text('Hello ' + params.name);\n  },\n  '/api/data': {\n    async get(req, res) {\n      const data = await req.json();\n      res.json({ received: data });\n    }\n  }\n});\nconst server = http.createServer(routes);\nserver.listen(3000, () => console.log('Server running on 3000'));","lang":"javascript","description":"Demonstrates basic routing, middleware via @setup context.use(), route params, async handler, and request/response helpers."},"warnings":[{"fix":"Use require('server-base/router') or require('server-base-router')","message":"router path must include '/router' or be required directly","severity":"gotcha","affected_versions":">=1.0"},{"fix":"Use require() instead of import","message":"ESM import not supported; module is CommonJS only","severity":"gotcha","affected_versions":">=1.0"},{"fix":"Review migration guide for breaking changes","message":"Route definition structure changed in v6? (check changelog)","severity":"breaking","affected_versions":"<7"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use const router = require('server-base/router')","cause":"Incorrect import; missing '/router' subpath","error":"TypeError: router is not a function"},{"fix":"npm install server-base-router","cause":"Package not installed","error":"Error: Cannot find module 'server-base-router'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}