X-Easy
This is a simple way to raise a server in Node.JS.
Module installation
npm install x-easy --save
// or
yarn add x-easy
Simple start file
const XEasy = require('x-easy')
let app = new XEasy('myApp', {
secure: false,
port: 3000,
disableNativeWebsocket: false,
disableSession: false
keys: {
key: './keyFile.key',
cert: './certFile.crt',
ca: ['./ca1.crt', './ca2.crt']
}
})
.loadModule('data')
.loadModule('config')
.loadModule('routes')
.loadModule('websocket')
.joinProcessListener('chat')
.start()
The loadModule function is used to instantiate objects in the application by passing it in the constructor.
{
'data': 'something else',
'viewEngine': 'pug',
'viewEnginePath': 'pages'
}
module.exports = class Config {
constructor(app, modules) {
app.callStop = () => {
}
app.addProcessMessageListener((channel, data) => {
})
app.setParameterHash('pwd')
app.setParameterHash(
'password',
{
seed: 'secret',
loop: 5
}
)
app.setParameterHash('user.password')
app.setPublic('public')
app.setViewEngine(modules.data.viewEngine)
app.setViewPath(modules.data.viewEnginePath)
app.addUploadURLPermission('/upload')
}
}
module.exports = class Routes {
constructor(app, modules) {
app.get('/', function(req, res) {
app.sendProcessMessage(
'chat',
{ foo: 'foo' }
)
app.sendAppProcessMessage({ foo: 'foo' } )
res.end('test ok - ' + req.query.test)
})
app.post('/upload', (req, res) => {
res.end('file upload success')
})
}
}
const URL = require('url')
module.exports = class WebSocket {
constructor(app, modules) {
app.webSocket.on('connection', (conn, req) => {
let data = URL.parse(req.url, true)
if(data.pathname !== '/protocol') conn.terminate()
else {
conn.on('message', msg => {
}
conn.on('close', () => {
})
}
})
}
}
Constant Variables
app.server
app.app
app.name
app.worker