96 lines
3.5 KiB
Markdown
96 lines
3.5 KiB
Markdown
# Njsbacker
|
|
Njsbacker is framework for backend developing at node.js/express.js *(in future versions can be supports any frameworks)*
|
|
## How it works?
|
|
Below you can see simple scheme as framework works: from **session** response get into **Main class** where or getting at **Group** and next into **Method**, or at **Method Class** where response data from http-params, **Group** and **Session** hadling at execution method.
|
|

|
|
After init main logic, logic can be converted at **express.js router** or **express.js server (app)**. Below you can see example code:
|
|
```javascript
|
|
// ... another code
|
|
mainserverObject.server(
|
|
'/api' // mount path of api
|
|
).listen(8080, '127.0.0.1', async (err) => {
|
|
if (err) {
|
|
throw err;
|
|
}
|
|
else {
|
|
console.log('SERVER RUNNED');
|
|
}
|
|
});
|
|
```
|
|
Below you can see how responses from http/call-function hadless into reponse at scheme:
|
|

|
|
Http data or Data from call method gets into pre_execution binary function where checks data: syntax/missed or no: if all successfuly data get into Session/Group/Method execute method else throwing error.
|
|
### Before work.
|
|
Before work you must install this package:
|
|
```bash
|
|
# for npm
|
|
npm install njsbacker
|
|
# for yarn
|
|
yarn add njsbacker
|
|
```
|
|
And import at yoy project
|
|
```javascript
|
|
// from nodejs
|
|
const njsbacker = require('njsbacker');
|
|
```
|
|
```typescript
|
|
// from typescript
|
|
import njsbacker from 'njsbacker';
|
|
```
|
|
*(We will be use node.js)*
|
|
## General clases and objects
|
|
### Main
|
|
Main class is main backend-application, mainbased skelet of project. Mainclass object containts methods, groups, sessionHandler, etc. For all works you must create your class from njsbacker.Main
|
|
```javascript
|
|
const njsbacker = require('njsbacker');
|
|
|
|
class App extends njsbacker.Main {
|
|
// ...
|
|
}
|
|
```
|
|
If you want handling your format errors, responses *(default JSON)* you must add methods into your body of class:
|
|
```javascript
|
|
const njsbacker = require('njsbacker');
|
|
|
|
class App extends njsbacker.Main {
|
|
errorHadler (error) { // Handling and show errors at backend application.
|
|
let errorData;
|
|
let codeStatus = 400;
|
|
if (error.name == "API Error") {
|
|
errorData = {
|
|
code : error.message,
|
|
details : error.data
|
|
};
|
|
}
|
|
else {
|
|
errorData = {
|
|
name : error.name,
|
|
stack : error.stack
|
|
};
|
|
codeStatus = 502;
|
|
}
|
|
return {
|
|
mainbody : { error : errorData },
|
|
headers : {
|
|
error : error.name
|
|
},
|
|
cookies : {
|
|
error_rised_at : Math.round(new Date().getTime() / 1000)
|
|
},
|
|
// redirect_uri: ''; // if want redirect to another url
|
|
code: codeStatus
|
|
}
|
|
}
|
|
}
|
|
```
|
|
#### errorHadler
|
|
Hadling and format errors. First argument is error object when may be hadled by this method. Returns handled error schema when must be containts next params:
|
|
```typescript
|
|
mainbody : < buffer / object / string > // content when will be returns
|
|
headers : object // headers into http-response
|
|
cookies : object // cookies when will be applyed
|
|
code : number // http-code
|
|
redirect_uri : string // redirect url (non-required, undefined if not redirect)
|
|
```
|
|
## Additional clases and objects
|
|
## Examples |