securedapp v1.16.0
SecuredApp
A Node.js package that is a secured app.
Usage
First, install the package using npm:
npm install securedapp --save
#File App.js: C'est le fichier de demarrage de l'application.
Exemple de fihcier:
/*-----------------------*/
/* Configuration globale */
/*-----------------------*/
// definition des messaged recu par le soket en provenance du client
let MyServerMessage = (Soket) => {
Soket.on('SendTest1', (data) => {
Soket.emit('Test1', data + " " + data);
})
}
// Option du serveur
const OptionServer = {
AppName: "TestApp", // Nom de l'application
Port: 3000, // Port du serveur
DebugSerever:true, // Affichier les message de debug du serveur
AppIsSecured: true, // L'application est elle securisee par un login
JWTSecret: "JSWTSecret", // phrase secrete pour le JWT
EncryptSecret: "EncryptSecret", // phrase secrete pour coder le token
ServerMessage : MyServerMessage, // La fonction de reception des messages sur le serveur
MongoUrl: "mongodb://login:pass@ipserveur:27017", //Url du serveur mongo avec login:pass@ipserveur:port
MongoDbName: "DBName", // Nom de la DB
CSS: {FontSize:{TexteNomrale:"2vw", TexteIphone:"3vw", TexteMax:"20px",TitreNormale:"4vw", TitreIphone:"7vw", TitreMax:"50px"},
Color:{Normale:"rgb(20, 163, 255)"}},
Icon: "/apple-icon-192x192.png"
}
/*---------------------*/
/* Creation du serveur */
/*---------------------*/
let securedapp = require('securedapp').securedapp
let MyServer = new securedapp(OptionServer)
MyServer.AddClientSuperAdminJsFiles("/TestClient/IndexAdmin.js", ["/TestClient/Test1.js","/TestClient/Test2.js"])
MyServer.AddClientJsFiles("Client", "/TestClient/IndexClient.js", ["/TestClient/Test1.js"])
MyServer.Start() // Lancement du serveur
Explication des fonctions
// Définition du fichier index et des fichiers js du SuperAdmin
MyServer.AddClientSuperAdminJsFiles(Index.js, ListeOfJsFiles)
// Définition du fichier index et des fichiers js pour un role déterminé
MyServer.AddClientJsFiles(Role, Index.js, ListeOfJsFiles)
Voici les fonction Mongo disponibles (let Mongo = require('securedapp').Mongo):
- Mongo.CollectionExist(Collection, Url, DbName, DoneCallback, ErrorCallback)
- Mongo.FindPromise(Querry, Projection, Collection, Url, DbName)
- Mongo.FindQuerryProjection(Querry, Projection, Collection, Url, DbName, DoneCallback, ErrorCallback)
- Mongo.FindAll(Collection, Url, DbName, DoneCallback, ErrorCallback)
- Mongo.InsertOne(Data, Collection, Url, DbName, DoneCallback, ErrorCallback)
- Mongo.UpdateById(Id, Newvalues, Collection, Url, DbName, DoneCallback, ErrorCallback)
- Mongo.DeleteById(Id, Collection, Url, DbName, DoneCallback, ErrorCallback)
#File IndexClient.js: Fichier de demarrage de l'application coté client. Il contient:
- la définition du CSS globale
- la creation du client
- la creation des différentes pages du client
- Le lancement du client
Exemple de fichier:
/* Definition du CSS */
let CSS = GlobalGetCss()
const GlobalCss = /*html*/`
<style>
/* Variable */
:root {
--App-color: `+ CSS.Color.Normale +`;
--App-font-size :`+ CSS.FontSize.TexteNomrale +`;
--App-Iphone-font-size :`+ CSS.FontSize.TexteIphone +`;
--App-Max-font-size :`+ CSS.FontSize.TexteMax +`;
}
</style>
`
/* Creation de l'application */
var MyApp = new ClientSecuredApp()
MyApp.SetCssGlobal(GlobalCss)
/* Definition de la page 1 */
var Page1 = new Page1Data()
MyApp.AddUi(Page1)
MyApp.DefineFirstUI(Page1)
/* Start de l'application */
MyApp.Start()
#File Test1.js:
C'est un fichier de definition d'une class UI a ajouter à l'application principale (via un extends ClientSecuredUI)
Voici les fonction disponibles :
- super.AddAction("Nom", "Fct();") permet d'ajouter une action
- super.CleanAction() permet de supprimer toutes les actions de la liste des actions
- super.GetGlobalNameFunction(Fct) renvoie le nom gloable de la Fct (avec le nom de l'objet)
- ClientSecuredApp.GetSocket() retourne l'objet Socket
- ClientSecuredApp.BuildWindow(UIHtml) crée une fenetre avec le contenu UIHtml
- ClientSecuredApp.DeleteWindow() supprime la fenetre
- ClientSecuredApp.ErrorWindow("c'est une erreur...") Genère une fenetre d'erreur
- ClientSecuredApp.GetNoImageBase64 reception du code base64 de no image
- GlobalGetUserLogin() Retourne le Login du user
- GlobalGetCss() Retourne un objet contenant le CSS Global
Le Css Globale est un objet :
{
FontSize:{TexteNomrale:"2vw", TexteIphone:"3vw", TexteMax:"20px",TitreNormale:"4vw",TitreIphone:"7vw", TitreMax:"50px"},
Color:{Normale:"rgb(20, 163, 255)"}
}
Exemple de fichier:
class Page1Data extends ClientSecuredUI{
constructor(){
super("UI page 1")
}
Html () {
return /*html*/`
<div id="Global_Titre" >NEw UI page 1</div>
<button id="Test1But" onclick="Page1.ClickTest1();">Test1</button>
<button id="Test2But" onclick="Page1.ClickTest2();">Test2</button>
`
}
Css () {
return /*html*/`
<style>
@media screen and (max-width: 980px) and (orientation : portrait) {
}
@media screen and (min-width: 1200px){
}
</style>
`
}
GetImageSvgBase64() {
return "SVG-In-Base64"
}
InitSocketIo() {
let socket = ClientSecuredApp.GetSocket()
socket.on('Test1', (data) =>{
alert("socket " + data)
})
}
Start(){
super.AddAction("Test1", "ClickTest1();")
super.AddAction("Test2", "ClickTest2();")
}
/*________________________________________*/
ClickTest1() {
let socket = ClientSecuredApp.GetSocket()
socket.emit('SendTest1','coucou');
}
ClickTest2() {
ClientSecuredApp.ErrorWindow("c'est une erreur...")
}
}
License
ISC
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago