@devnetic/server

1.1.4 • Public • Published

@devnetic/server

npm (scoped) npm bundle size (scoped) npm GitHub issues GitHub

A simple, modern, and blasing fast server for Node.js, with a router module to make your life easier.

Usage

Basic Server

const server = require('@devnetic/server')
// import * as server from '@devnetic/server'

const app = server.createServer()

app.router.get('/ready', (request, response) => {
  response.json({ server: 'ok' })
})

app.listen()

Setting Port, Hostname and Listening Callback

Port param is mandatory, hostname and listening callback are optional.

const server = require('@devnetic/server')
// import * as server from '@devnetic/server'

const app = server.createServer()

app.router.get('/ready', (request, response) => {
  response.json({ server: 'ok' })
})

app.listen(3000, 'localhost', (error) => {
  if (error) {
    console.error('Something bad happened: %o', error)

    throw new Error(`Something bad happened ${error}`)
  }

  console.log(`Server is listening on host ${hostname} and port ${port}`)
})

Routing

For more information about routing please read the router module docs.

const server = require('@devnetic/server')
// import * as server from '@devnetic/server'

const app = server.createServer()

app.router.get('/ready', (request, response) => {
  response.json({ server: 'ok' })
})

// http://localhost:3000/users?limit=10&offset=2
server.router.get('/users', (request, response) => {
  console.log(request.query) // { limit: '10', offset: '2' }
})

// http://localhost:3000/users
server.router.post('/users', (request, response) => {
  console.log(request.body)  // the request payload
})

// http://localhost:3000/users/10
server.router.get('/users/:id', (request, response) => {
  console.log(request.params) // { id: '10' }
})

server.listen() // use default port is 3000, but you can use other

Adding a Route Group

const groupRoutes = [{
  method: 'post',
  path: 'login',
  handler: (request, response) => {
    response.json({ params: request.params })
  }
}, {
  method: 'post',
  path: 'register',
  handler: (request, response) => {
    response.json({ params: request.params })
  }
}, {
  method: 'get',
  path: 'logout',
  handler: (request, response) => {
    response.json({ params: request.params })
  }
}]

server.router.group('v1', groupRoutes)
server.listen() // use default port is 3000, but you can use other

Configuration

There are configuration options available when you are creating the server:

  const app = server.createServer({
    keepAliveTimeout: number
    http2: Object,
    http2: Object
  })

The listen() method have 3 different signatures and can take port, hostname and callback params. The signatures are:

app.listen(3000, (error) => {})

app.listen(3000, 'localhost')

app.listen(3000, 'localhost', (error) => {})

If you use the second signature, a '::' value is set like hostname. Port param is always mandatory.

Readme

Keywords

Package Sidebar

Install

npm i @devnetic/server

Weekly Downloads

0

Version

1.1.4

License

MIT

Unpacked Size

10.6 kB

Total Files

7

Last publish

Collaborators

  • aagamezl