0.8.8 • Published 5 years ago

simples v0.8.8

Weekly downloads
296
License
GPL-3.0
Repository
github
Last release
5 years ago

0.9.0-alpha-4

simpleS is a simple web framework for Node.JS designed to create HTTP(S) servers and clients with some special features:

  • High performance and simple structure with minimum configuration
  • Advanced routing for http requests, static files and errors
  • Unique interface for requests and responses (named as connection)
  • Response compression (deflate and gzip, disabled by default)
  • Virtual Hosting
  • CORS support
  • Sessions (disabled by default)
  • Template engine support
  • WebSocket implementation (RFC 6455)
  • Client API for HTTP requests and WebSocket connections
  • Browser simple API for AJAX and WebSocket

Works with node.js 6.0+!

Any feedback is welcome!

More simple modules:

Changelog (link will be added soon, check repo for changelog)

Documentation (link will be added soon, check repo for documentation)

Installation

npm install simples@alpha

Examples

See the folder examples/ in the module directory, it contains examples that cover most simpleS features.

Usage

Server Creation

const simples = require('simples');

const server = simples(); // Your server is set up on port 80

// Catch 404 Error
server.error(404, (connection) => {
    connection.end('Error 404 caught');
});

// Create the first route
server.get('/', (connection) => {
    connection.end('Simples Works');
});

Virtual Hosting

const host0 = server; // The server is in the same time the main host
const host1 = server.host('example.com'); // Other hosts
const host2 = server.host('example2.com');

// Now for each host you can apply individual routing
host0.get('/', (connection) => {
    connection.end('Main Host');
});

host1.get('/', (connection) => {
    connection.end('Host 1');
});

host2.get('/', (connection) => {
    connection.end('Host 2');
});

WebSocket

Let's create an echo WebSocket server:

server.ws('/', {
    limit: 1024, // The maximum size of a message
    advanced: false, // Set connection advanced mode, see docs for more info
    origins: ['null'] // Set accepted origins, "null" for localhost
}, (connection) => {

    // Log the new connection
    console.log('New connection');

    // Listen for messages to send them back
    connection.on('message', (message) => {
        console.log('Message: ' + message.data);
        connection.send(message.data);
    });

    // Log connection close
    connection.on('close', () => {
        console.log('Connection closed');
    });
});

Access the server from the browser built-in WebSocket API:

const socket = new WebSocket('ws://localhost/', 'echo');

// Listen for messages
socket.onmessage = (event) => {
    console.log(event.data);
};

// Send the first message
socket.send('ECHO');

Access the server from the browser simpleS WebSocket API:

const socket = simples.ws('/', ['echo']);

// Listen for messages
socket.on('message', (message) => {
    console.log(message.data);
});

// Send the first message
socket.send('ECHO');

Access the server from server-side simpleS client WebSocket API:

const simples = require('simples');

const client = simples.client();

const socket = client.ws('/');

// Listen for messages
socket.on('message', (message) => {
    console.log(message.data);
});

// Send the first message
socket.send('ECHO');

Client Creation

const simples = require('simples');

const client = simples.client();

// GET request
client.get('/').on('body', (response, body) => {
    console.log('Response status: ' + response.status);
    console.log('Response body: ' + body.toString());
});

// POST request
client.post('/send').send(/* data */).on('response', (response) => {
    // Do something with the response
}).on('body', (response, body) => {
    console.log('Response body: ' + body.toString());
});
0.9.0-alpha-10

5 years ago

0.9.0-alpha-9

5 years ago

0.9.0-alpha-8

5 years ago

0.9.0-alpha-7

5 years ago

0.9.0-alpha-6

5 years ago

0.9.0-alpha-5

5 years ago

0.9.0-alpha-4

5 years ago

0.8.8

7 years ago

0.8.7-1

8 years ago

0.8.7

8 years ago

0.8.6

8 years ago

0.8.5

8 years ago

0.8.4

8 years ago

0.8.3

8 years ago

0.8.2

8 years ago

0.8.1

8 years ago

0.8.0

8 years ago

0.7.6

9 years ago

0.7.5

9 years ago

0.7.4

9 years ago

0.7.3

9 years ago

0.7.2

9 years ago

0.7.1

9 years ago

0.7.0

9 years ago

0.6.6

9 years ago

0.6.5-1

9 years ago

0.6.5

9 years ago

0.6.4

10 years ago

0.6.3

10 years ago

0.6.2

10 years ago

0.6.1

10 years ago

0.6.0

10 years ago

0.5.9-1

10 years ago

0.5.9

10 years ago

0.5.8

10 years ago

0.5.7

10 years ago

0.5.6

10 years ago

0.5.5

10 years ago

0.5.4

10 years ago

0.5.3

10 years ago

0.5.2

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.9

10 years ago

0.4.8

11 years ago

0.4.7

11 years ago

0.4.6

11 years ago

0.4.5

11 years ago

0.4.4

11 years ago

0.4.3

11 years ago

0.4.2

11 years ago

0.4.1

11 years ago

0.4.0

11 years ago

0.3.9

11 years ago

0.3.8

11 years ago

0.3.7

11 years ago

0.3.6

11 years ago

0.3.5

11 years ago

0.3.4

11 years ago

0.3.3

11 years ago

0.3.2

11 years ago

0.3.1

11 years ago

0.3.0

11 years ago

0.2.9

11 years ago

0.2.8

11 years ago

0.2.7

11 years ago

0.2.6

11 years ago

0.2.5

11 years ago

0.2.4

11 years ago

0.2.3

11 years ago

0.2.2

11 years ago

0.2.1

11 years ago

0.2.0

11 years ago

0.1.9

11 years ago

0.1.8

11 years ago

0.1.7

11 years ago

0.1.6

11 years ago

0.1.5

11 years ago

0.1.4

11 years ago

0.1.3

11 years ago

0.1.2

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago

0.0.9

11 years ago

0.0.8

11 years ago

0.0.7

11 years ago

0.0.6

11 years ago

0.0.5

11 years ago

0.0.4

12 years ago

0.0.3

12 years ago

0.0.2

12 years ago

0.0.1

12 years ago