LabWired
Design circuits, run firmware, compare variants, and inspect the result in Playground. Open source. MCP for Claude or Codex. Free to try.
翻譯準備中
Restana is a lightweight and fast Node.js framework for building RESTful APIs.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Restana is a lightweight and fast Node.js framework for building RESTful APIs. Inspired by Express, it provides a simple and intuitive API for routing, handling requests and responses, and middleware management. It is designed to be easy to use and integrate with other Node.js modules, allowing developers to quickly build scalable and maintainable APIs.
Read more online:
Check it yourself: https://web-frameworks-benchmark.netlify.app/result?f=feathersjs,0http,koa,nestjs-express,express,sails,nestjs-fastify,restana
Install
npm i restana
Create an HTTP API service:
const restana = require('restana')
const service = restana()
service.get('/hi', (req, res) => res.send('Hello World!'))
service.start(3000)
Creating secure API service:
const https = require('https')
const restana = require('restana')
const service = restana({
server: https.createServer({
key: keys.serviceKey,
cert: keys.certificate
})
})
service.get('/hi', (req, res) => res.send('Hello World!'))
service.start(3000)
Using http.createServer():
const http = require('http')
const restana = require('restana')
const service = restana()
service.get('/hi', (req, res) => res.send('Hello World!'))
http.createServer(service).listen(3000, '0.0.0.0')
Restana ships with secure defaults out of the box:
Not Found), preventing internal details (stack traces, database errors, file paths) from leaking to clients. Provide a custom errorHandler to control what gets exposed.getConfigOptions() returns a frozen copy, preventing middleware from mutating internal framework options.res.send().trustProxy: true is explicitly configured.For local-only development, bind explicitly to loopback:
service.start(3000, '127.0.0.1')
When TLS terminates at a trusted reverse proxy:
const service = restana({ trustProxy: true })
Error details are hidden by default in every environment. For local debugging only, opt in with debugErrors: true; production mode always masks details.
caseSensitive: false to opt out).res.send(err) and the default error handler.'/users/:id' → req.params.id).res.send() status code handling and a typed, explicit public API.Upgrading from 6.x? Read the migration guide.