Registry / development / node-rest-server-2

node-rest-server-2

JSON →
library4.0.1jsnpmunverified

node-rest-server-2 v4.0.1 is a configuration-only Node.js REST server built on top of Express. It allows developers to define endpoints and controllers via a simple configuration object, eliminating boilerplate server setup. It supports all HTTP methods, async controllers, and custom status codes. Updated irregularly; last release March 2023. Compared to similar tools like json-server, it offers more flexible controller logic and full Express integration.

npm install node-rest-server-2
INSTALL
IMPORT
SIG · NODE-REST-SERVER-2
N
node-rest-server-2
developmentjavascriptv4.0.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default (NodeRestServer)
import NodeRestServer from 'node-rest-server-2';
const NodeRestServer = require('node-rest-server-2').default;
The package exports a default function. The named export is deprecated.
named (NodeRestServer)
import { NodeRestServer } from 'node-rest-server-2';
const { NodeRestServer } = require('node-rest-server-2');
Named export exists but is discouraged; default import is preferred.
CJS require
const NodeRestServer = require('node-rest-server-2');
Works in CommonJS projects; no .default needed.

Creates a REST server with a GET and POST endpoint using configuration only.

import NodeRestServer from 'node-rest-server-2'; const routeConfig = { '/api/greet': { method: 'GET', status: 200, controller: () => ({ message: 'Hello, world!' }), }, '/api/echo': { method: 'POST', controller: async (requestData) => { return { status: 200, payload: requestData.body }; }, }, }; const serverConfig = { port: 3000, host: 'localhost', }; NodeRestServer(routeConfig, serverConfig); console.log('REST server running on http://localhost:3000');
Debug
Known issues
deprecatedThe named export 'NodeRestServer' is deprecated in v4. Use default import instead.
fix
Change to: import NodeRestServer from 'node-rest-server-2';
affects: >=4.0.0
gotchaController must return a JSON-serializable object or a Promise that resolves to such. Returning a string may cause issues.
fix
Wrap string in an object: controller: () => ({ message: 'Data' });
affects: *
gotchaThe route config method property is case-sensitive; 'GET' works but 'get' may not.
fix
Ensure method is uppercase: 'GET', 'POST', etc.
affects: *
breakingIn v4, the controller receives (requestData, helpers) instead of previous (request, response).
fix
Update controller signature: controller: (requestData, { getDatabaseConnection }) => ...
affects: >=4.0.0
Errors
Common errors & fixes
TypeError: NodeRestServer is not a function
Using named import incorrectly in CJS environment without .default
fix
Use require('node-rest-server-2') without destructuring, or import default in ESM.
Error: listen EADDRINUSE :::3000
Port already in use by another process
fix
Change port in serverConfig or kill the process using the port.
Cannot find module 'express'
Express is a peer dependency not installed
fix
Run: npm install express
Unexpected token u in JSON at position 0
Controller returned undefined instead of an object
fix
Ensure controller returns a valid JSON object or a Promise resolving to one.
Upgrade
Version history
4.0.1latest on npm
Audit
Dependencies
expressrequiredUnderlying HTTP framework for routing and middleware
Agent activity
44 hits · last 30 days
node
36
Resources
node-rest-server-2 — npm install node-rest-server-2 · libregistry