Nuclear Pumpkin Mocha

    This package has been deprecated

    Author message:

    move to @the-/server ( https://github.com/the-labo/the/tree/master/packages/server#readme )

    the-server

    14.0.16 • Public • Published

    the-server

    Build Status npm Version JS Standard

    HTTP/RPC Server of the-framework

    Installation

    $ npm install the-server --save

    Usage

    'use strict'
     
    const React = require('react')
    const theServer = require('the-server')
    const { Ctrl, Stream } = theServer
    const fs = require('fs')
    const { createElement: c } = React
     
    ;(async () => {
      // Define RPC Controller Class
      class FruitShopCtrl extends Ctrl {
        async addToCart (name, amount = 1) {
          const { session } = this
          const { cart = {} } = session
          cart[name] = (cart[name] || 0) + amount
          session.cart = cart
        }
     
        async buy () {
          const { session } = this
          const { cart = {} } = session
          /* ... */
        }
      }
     
      // Define real time event handling stream
      class CountdownStream extends Stream {
        async * provide () {
          let count = this.params.count || 100
          while (count > 0) {
            yield { count: this.count }
            this.count--
          }
        }
      }
     
      const server = theServer({
        /**
         * Redis config
         */
        redis: { host: '127.0.0.1', port: '6379', db: 1 },
        /**
         * Directory path to serve static files
         */
        static: 'public',
        /**
         * View renderer
         * @param children
         */
        html: ({ children }) => c(
          'html',
          {},
          c('body', {}, children)
        ),
        // Register controller with name
        // Controller instance will be created for each method call
        controllers: {
          fruitShop: FruitShopCtrl
        },
     
        streams: {
          countdown: CountdownStream
        }
      })
     
      await server.listen(3000)
     
    })().catch((e) => console.error(e))
     

    API Guide

    License

    This software is released under the MIT License.

    Links

    Keywords

    Install

    npm i the-server

    DownloadsWeekly Downloads

    1

    Version

    14.0.16

    License

    MIT

    Unpacked Size

    731 kB

    Total Files

    160

    Last publish

    Collaborators

    • fuji_haruka
    • okunishinishi