1.1.4 • Published 4 years ago

@devnetic/server v1.1.4

Weekly downloads
11
License
MIT
Repository
github
Last release
4 years ago

@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.

1.1.1

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

5 years ago

1.0.0

5 years ago