0.3.5 • Published 4 years ago

@scripty/server v0.3.5

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

@scripty/server

Description

Setting up a node server for a website can be a pain. This express wrapper will install and preconfigure many dependencies with which you can run a one page application in react. Admittedly, not every use case is covered but that actually wasn´t the goal. The main goal was to keep it easy and clean.

Features:

  • prerendering (no server side rendering)
  • compression
  • body parsing
  • favicon middleware
  • webpack-hot-middleware for hot modules reloading
  • preconfigured static paths
  • initialized routing

Usage

npm install -s @scripty/server
Client: server.js
import { Server, IndexController } from '@scripty/server';

const init = async () => {
    let app = new Server();
    await app.addController(new IndexController({ title: 'For title tag' }));
    await app.addController(new ExampleController());
    app.start(3000);
};

init().catch((err) => {
    console.error(err.message);
});
Client: ExampleController.js
export class ExampleController {
    init(server, router) {
        router.post('/create', this.createAction);
        router.get('/read', this.readAction);
        server.use(router);
    }

    createAction(req, res) {
        res.json({example: 'foo'})
    };

    readAction(req, res) {
        res.json({example: 'foo'})
    };
}

Static Files

if you want to access your static files you have to create following folders in your project:

project
│   README.md
│   file001.txt
│
└───public
│   │
│   │
│   │
│   └───images
│   │    │   image1.png
│   │    │   image2.jpg
│   │    │   ...
│   │
│   └───files
│   │    │   file1.txt
│   │    │   file2.zip
│   │    │   ...

You can access your files on server this way:

https://localhost:3000/files/file1.txt

https://localhost:3000/images/image1.png

What´s next?

  • add possibility to configure meta data
  • extending readme