Pytanie odnosnie back end przy uzyciu node.js i czy to jest w ogole mozliwe

0

Witam serdecznie,

Chce zbudowac prosta strone internetowa. Warunek strona musi byc dynamiczna i pobierac dane z bazy danych. Konkretnie chce zeby zmienna z kodu zrodlowego strony zostala odczytana przez serwer i powiazana z odpowiednim typem z baza danych. Nie mam doswiadczenia, dlatego prosze mi wybaczyc jesli pisze glupoty.:)

0

Tak, jest mozliwe zrobienie dynamicznej strony podpiętej pod bazę z uzyciem Node.js

0

Maciej dziekuje Ci za szybka odpowiedz. a czy jest mozliwosc wczytac dynamicznie zdjecie, ktore podobnie znajduje sie pod jakas zmienna?
Nastepne pytanie to czy jest mozliwosc uzycia JS do modyfikacji zmiennej, ktora zapisze w bazie danych zmiany. Np. zmiana ww tekstu lub zdjecia ?

0

W bazie danych możesz zaprojektować sobie tablicę ze zmiennymi (typu klucz - wartość). Możesz oczywiście się odwoływać do tych kluczy i odczytywać ich wartości. To tak jakbyś właśnie korzystał ze zmiennych. To samo tyczy się modyfikacji. To Ty decydujesz czy pod zmienną znajduje się tekst / URL do zdjęcia / liczba / data etc.

0

Czy masz jakiś pomysł jak to zacząć? Gdzie znaleźć jakbyś przykład?

0

No ja właśnie też tego szukam. No i nie moge znaleźć tego nigdy.


https://exampass.pl/

1

Zacznijmy od utworzenia tabeli zmiennych:

create table `variables`(`id` int auto_increment unique, `key` varchar(256), `value` varchar(256));

Dodajmy do niej przykładową zmienną:

insert into `variables`(`key`, `value`) values ('photo_url', 'https://static.4programmers.net/img/logo.png');

Możemy teraz odczytać wartość tej zmiennej:

select `value` from `variables` where `key`='photo_url';

A jak zarządzać tym po stronie node.js? Napisałem na szybko prostą klasę do tego:

const mysql = require('mysql');

class VariablesManager {

    constructor(){
        this.connection = mysql.createConnection({
            host: 'localhost',
            user: 'root',
            password: 'admin',
            database: 'test'
        });

        this.connection.connect((err) => {
            if(err){
                throw err;
            }            
        });
    }

    Create(key, value){
        return new Promise((resolve, reject) => {
            let query = "insert into `variables`(`key`, `value`) values (?,?)";
            this.connection.query(query, [key, value], (error, results) => {
                if(error){
                    reject(error);
                }
    
                resolve(true);
            });
        });
    }

    Get(key){
        return new Promise((resolve, reject) => {
            let query = "select `value` from `variables` where `key`=?;";
            this.connection.query(query, [key], (error, results) => {
                if(error){
                    reject(error);
                }
    
                resolve(results[0].value);
            });
        });
    }

    Update(key, value){
        return new Promise((resolve, reject) => {
            let query = "update `variables` set `value`=? where `key`=?";
            this.connection.query(query, [value, key], (error, results) => {
                if(error){
                    reject(error);
                }
    
                resolve(true);
            });
        });
    }

    Delete(key){
        return new Promise((resolve, reject) => {
            let query = "delete from `variables` where `key`=?;";
            this.connection.query(query, [key], (error, results) => {
                if(error){
                    reject(error);
                }
    
                resolve(true);
            });
        });
    }
}

module.exports = VariablesManager;

No dobrze, to czas na przykłady użycia.

Tworzenie nowej zmiennej:

const VariablesManager = require('./programs/VariablesManager');
let reader = new VariablesManager();

reader.Create('photo_url', 'https://static.4programmers.net/img/logo.png').then((value) => {
    console.log(value);
}).catch((err) => {
    console.error(err);
});

Pobieranie jej wartości:

const VariablesManager = require('./VariablesManager');
let reader = new VariablesManager();

reader.Get('photo_url').then((value) => {
    console.log(value);
}).catch((err) => {
    console.error(err);
});

Aktualizacja jej wartości:

const VariablesManager = require('./programs/VariablesManager');
let reader = new VariablesManager();

reader.Update('photo_url', 'https://static.4programmers.net/img/logo-small.png').then((value) => {
    console.log(value);
}).catch((err) => {
    console.error(err);
});

Oraz oczywiście usunięcie zmiennej z bazy:

const VariablesManager = require('./programs/VariablesManager');
let reader = new VariablesManager();

reader.Delete('photo_url').then((value) => {
    console.log(value);
}).catch((err) => {
    console.error(err);
});

Mam nadzieję, że ta prosta klasa będzie spełniała wasze oczekiwania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1