# @exobase/use-node

> Exobase root hook to handle function running on a raw Node HTTP/S server

Latest version **1.0.0-rc.20** (published 2024-07-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install @exobase/use-node
pnpm add @exobase/use-node
yarn add @exobase/use-node
bun add @exobase/use-node
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0-rc.20 |
| Published | 2024-07-08 |
| First published | 2022-11-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 3 |
| Unpacked size | 23.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | rayepps |
| Maintainers | rayepps |

## Links

- npm: https://www.npmjs.com/package/@exobase/use-node
- npm.io page: https://npm.io/package/@exobase/use-node

## Dependencies (3)

- [radash](https://npm.io/package/radash.md) 12.0.0
- [compression](https://npm.io/package/compression.md) ^1.7.4
- [@exobase/core](https://npm.io/package/@exobase/core.md) ^1.0.0-rc.31

## Recent versions

- 1.0.0-rc.20 (latest) — 2024-07-08
- 1.0.0-rc.19 — 2024-02-21
- 1.0.0-rc.18 — 2024-02-20
- 1.0.0-rc.17 — 2024-02-19
- 1.0.0-rc.16 — 2024-02-19
- 1.0.0-rc.14 — 2023-03-07
- 1.0.0-rc.13 — 2023-03-02
- 1.0.0-rc.12 — 2023-03-01
- 1.0.0-rc.11 — 2023-03-01
- 1.0.0-rc.10 — 2023-02-22
- 1.0.0-rc.9 — 2023-02-22
- 1.0.0-rc.8 — 2023-01-08
- 1.0.0-rc.7 — 2023-01-07
- 1.0.0-rc.6 — 2023-01-03
- 1.0.0-rc.5 — 2023-01-03
- … 3 more at https://npm.io/package/@exobase/use-node/versions

## README

---
title: 'useNode'
description: 'A root hook to handle the standard Node.js http/https server framework'
group: 'Root Hooks'
badge: 'Node.js'
---

An Exobase root hook for a raw Node HTTP/S server

## Install

```sh
yarn add @exobase/use-node
```

## Import

```ts
import { useNode } from '@exobsae/use-node'
```

## Usage

```ts
import https from 'https'
import { error } from '@exobase/core'
import { compose, toInt } from 'radash'
import { useRouter } from '@exobase/hooks'
import { useNode } from '@exobase/use-node'

const server = https.createServer(
  compose(
    useNode(),
    useRouter(router => router
      .on(['GET', 'POST'], '/ping', pingEndpoint)
      put('/v1/library/book/*/return', returnBookEndpoint),
      post('/v1/library/book', createBookEndpoint),
      get('/v1/library/book/*', findBookEndpoint),
      get('/v1/library/book', listBooksEndpoint),
    ),
    async () => {
      throw error({
        status: 404,
        message: 'Not found'
      })
    }
  )
)

const port = toInt(process.env.PORT, 8500)

server.listen(port, () => {
  console.log(`API listening on port ${port}`)
})
```

---
_Source: https://npm.io/package/@exobase/use-node · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
