MERN 7 React JS – Base per MongoDB
Controllare solo se il server risponde
router.post('/register', (req, res) => {
console.log("ciao dal server: register")
res.send('registro_pronto');
});
console.log("ciao dal server: register")
res.send('registro_pronto');
});
PROBLEMA PARAMETRI GET - Chiamata del server con Oggetto e serie di variabili
axios.get('/domande/carica_tutte_sort_old/', {
params: {
id_utente: id_utente,
ordine_visualizzazione: ordine_visualizzazione,
scelta_query: input_opzioni.scelta_query,
lista_materie: JSON.stringify(lista_materie_caricate_da_mongo)
}
}).then((res) => {
SET_max_indice_aux(lista_domande[0].indice_aux)
crea_lista_stornati(res.data, lista_materie_caricate_da_mongo)
}).catch((error) => {
console.log(error)
});
}
axios.get('/classi/classi_carica_tutti_programma/' + id_utente + '/' + programma_della_classe)
.then((res) => {
console.log('CLASSI appena fecciate da mongo')
let lista_classi_per_programma = res.data
controlla_se_aggiungere_classi_ad_array(lista_classi_gia_presenti, lista_classi_per_programma, materiale_id)
}).catch((error) => {
console.log(error)
});
params: {
id_utente: id_utente,
ordine_visualizzazione: ordine_visualizzazione,
scelta_query: input_opzioni.scelta_query,
lista_materie: JSON.stringify(lista_materie_caricate_da_mongo)
}
}).then((res) => {
SET_max_indice_aux(lista_domande[0].indice_aux)
crea_lista_stornati(res.data, lista_materie_caricate_da_mongo)
}).catch((error) => {
console.log(error)
});
}
axios.get('/classi/classi_carica_tutti_programma/' + id_utente + '/' + programma_della_classe)
.then((res) => {
console.log('CLASSI appena fecciate da mongo')
let lista_classi_per_programma = res.data
controlla_se_aggiungere_classi_ad_array(lista_classi_gia_presenti, lista_classi_per_programma, materiale_id)
}).catch((error) => {
console.log(error)
});
router.get('/classi_carica_tutti_programma/:utente/:programma', async (req, res) => {
console.log('CLASSI trova_le classi per programma')
console.log(req.params.utente)
console.log(req.params.programma)
console.log(req.params.end_1)
try {
const Classi_document = await CLASSI.find({ utente: req.params.utente,
programma: req.params.programma })
.sort({ date: 'descending' })
.populate('programma');
res.json(Classi_document);
// console.log(Domande_document)
} catch (err) {
res.json({ message: err });
}
});
console.log('CLASSI trova_le classi per programma')
console.log(req.params.utente)
console.log(req.params.programma)
console.log(req.params.end_1)
try {
const Classi_document = await CLASSI.find({ utente: req.params.utente,
programma: req.params.programma })
.sort({ date: 'descending' })
.populate('programma');
res.json(Classi_document);
// console.log(Domande_document)
} catch (err) {
res.json({ message: err });
}
});
Classica richiesta di documenti
ciao prova
router.get('/alunni_carica_per_classe/:utente/:classe', async (req, res) => {
console.log('CARICA ALUNNI per l utente')
console.log(req.params.utente)
console.log(req.params.classe)
try {
const Alunni_document = await ALUNNI.find({ utente: req.params.utente,
classe_per_studiare:req.params.classe})
.sort({ date: 'descending' })
.populate('classe_per_studiare');
res.json(Alunni_document);
// console.log(Domande_document)
} catch (err) {
res.json({ message: err });
}
});
console.log('CARICA ALUNNI per l utente')
console.log(req.params.utente)
console.log(req.params.classe)
try {
const Alunni_document = await ALUNNI.find({ utente: req.params.utente,
classe_per_studiare:req.params.classe})
.sort({ date: 'descending' })
.populate('classe_per_studiare');
res.json(Alunni_document);
// console.log(Domande_document)
} catch (err) {
res.json({ message: err });
}
});
In un documento modificare un oggetto intero
const nuova_immagine_s3 = {
key: '',
descrizione: 'descrizione'
}
axios.patch('/domande/modifica_immagine_domanda_S3/' + item._id, nuova_immagine_s3)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
key: '',
descrizione: 'descrizione'
}
axios.patch('/domande/modifica_immagine_domanda_S3/' + item._id, nuova_immagine_s3)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
router.patch('/modifica_immagine_domanda_S3/:postId', async (req, res) => {
console.log('DOMANDA modifica della immagine caricata nella domanda')
console.log(req.params.postId)
console.log(req.body)
try {
const update_domande = await Domande.updateOne(
{ _id: req.params.postId },
{
$set: { indirizzo_S3_immagine_domanda: { key: req.body.key, descrizione: req.body.descrizione } }
}
);
res.json(update_domande);
} catch (err) {
res.json({ message: err });
}
});
console.log('DOMANDA modifica della immagine caricata nella domanda')
console.log(req.params.postId)
console.log(req.body)
try {
const update_domande = await Domande.updateOne(
{ _id: req.params.postId },
{
$set: { indirizzo_S3_immagine_domanda: { key: req.body.key, descrizione: req.body.descrizione } }
}
);
res.json(update_domande);
} catch (err) {
res.json({ message: err });
}
});
indirizzo_S3_immagine_domanda: {
key: {
type: String,
default: ''
},
descrizione: {
type: String,
default: ''
}
},
key: {
type: String,
default: ''
},
descrizione: {
type: String,
default: ''
}
},
Aumentare o Modificare un indice numerico in un campo di una collezione
axios.patch('/domande/aumenta_indici/' + props.item.utente)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
const nuovi_indici = {
indice_end: indice_end,
indice_aux: -indice_end - 1,
indice_now: -indice_end
}
console.log(nuovi_indici)
axios.patch('/domande/modifica_indici/' + props.item._id, nuovi_indici)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
const nuovi_indici = {
indice_end: indice_end,
indice_aux: -indice_end - 1,
indice_now: -indice_end
}
console.log(nuovi_indici)
axios.patch('/domande/modifica_indici/' + props.item._id, nuovi_indici)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
router.patch('/aumenta_indici/:postId', async (req, res) => {
console.log('domande aumenta_indici')
console.log(req.params.postId)
try {
const update_domande = await Domande.updateMany(
{ "utente": req.params.postId},
{
$inc: {indice_aux: 1}
}
);
res.json(update_domande);
console.log('incremento riuscito')
} catch (err) {
res.json({ message: err });
console.log('incremento errore')
}
});
router.patch('/modifica_indici/:postId', async (req, res) => {
console.log('modifica delle domande')
console.log(req.params.postId)
console.log(req.body)
try {
const update_domande = await Domande.updateOne(
{ _id: req.params.postId },
{
$set: {
indice_end: req.body.indice_end,
indice_aux: req.body.indice_aux,
indice_now: req.body.indice_now,
data_ultimo_ascolto: Date()
}
}
);
res.json(update_domande);
} catch (err) {
res.json({ message: err });
}
});
console.log('domande aumenta_indici')
console.log(req.params.postId)
try {
const update_domande = await Domande.updateMany(
{ "utente": req.params.postId},
{
$inc: {indice_aux: 1}
}
);
res.json(update_domande);
console.log('incremento riuscito')
} catch (err) {
res.json({ message: err });
console.log('incremento errore')
}
});
router.patch('/modifica_indici/:postId', async (req, res) => {
console.log('modifica delle domande')
console.log(req.params.postId)
console.log(req.body)
try {
const update_domande = await Domande.updateOne(
{ _id: req.params.postId },
{
$set: {
indice_end: req.body.indice_end,
indice_aux: req.body.indice_aux,
indice_now: req.body.indice_now,
data_ultimo_ascolto: Date()
}
}
);
res.json(update_domande);
} catch (err) {
res.json({ message: err });
}
});
Ricavare la lista di generi in un campo di una collezione
const Controllo_materie_presenti_in_mongo_db = () => {
// funzione_set_aggiornamento(true)
console.log('Controllo_materie_in_mongo_db')
//+ user.sub
axios.get('/domande/trova_materie/' + id_utente)
.then((res) => {
console.log(res.data)
SET_lista_materie(res.data)
console.log(res.data)
}).catch((error) => {
console.log(error)
});
}
// funzione_set_aggiornamento(true)
console.log('Controllo_materie_in_mongo_db')
//+ user.sub
axios.get('/domande/trova_materie/' + id_utente)
.then((res) => {
console.log(res.data)
SET_lista_materie(res.data)
console.log(res.data)
}).catch((error) => {
console.log(error)
});
}
router.get('/trova_materie/:postId', async (req, res) => {
console.log('Elenco delle materie')
console.log(req.params.postId)
try {
const Domande_document = await Domande.distinct('materia', { "utente": req.params.postId });
res.json(Domande_document);
console.log(Domande_document)
} catch (err) {
res.json({ message: err });
}
});
console.log('Elenco delle materie')
console.log(req.params.postId)
try {
const Domande_document = await Domande.distinct('materia', { "utente": req.params.postId });
res.json(Domande_document);
console.log(Domande_document)
} catch (err) {
res.json({ message: err });
}
});
Gestione array in mongoDB
Aggiunta o cancellazione di un elemento in una riga
Esempio scritto per le variabili numeriche delle domande in toolmemeociao prova
ciao prova
function Aggiungi_una_variabile(event) {
event.preventDefault();
axios.put('/domande_calcoli/aggiungi_una_variabile/' + props.item._id, input)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
let lista = props.lista_variabili
// devo creare un numero random per lavorare
let numero = Number(input.minimo) + Number(input.passo) *
Math.floor(Math.random() * (Number(input.massimo)-Number(input.minimo))/Number(input.passo))
// console.log(numero);
let input_aux = input
input_aux.valore_attuale = Number(numero) ;
lista.push(input_aux)
props.set_lista_variabili(lista)
let a = props.cambio_stato1
props.set_cambio_stato1(!props.cambio_stato1)
}
const cancella_variabile = (id, id_array) => {
console.log('CANCELLA VARIABILE')
console.log(id)
console.log(id_array)
axios.patch('/domande_calcoli/cancella_variabile/' + id + '/' + id_array)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log('errore')
console.log(error)
});
// props.SET_variab_aggiorna(!aux)
let lista = lista_variabili
removeObjectWithId(lista, id_array);
set_lista_variabili(lista)
set_cambio_stato1(!cambio_stato1)
}
event.preventDefault();
axios.put('/domande_calcoli/aggiungi_una_variabile/' + props.item._id, input)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log(error)
});
let lista = props.lista_variabili
// devo creare un numero random per lavorare
let numero = Number(input.minimo) + Number(input.passo) *
Math.floor(Math.random() * (Number(input.massimo)-Number(input.minimo))/Number(input.passo))
// console.log(numero);
let input_aux = input
input_aux.valore_attuale = Number(numero) ;
lista.push(input_aux)
props.set_lista_variabili(lista)
let a = props.cambio_stato1
props.set_cambio_stato1(!props.cambio_stato1)
}
const cancella_variabile = (id, id_array) => {
console.log('CANCELLA VARIABILE')
console.log(id)
console.log(id_array)
axios.patch('/domande_calcoli/cancella_variabile/' + id + '/' + id_array)
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log('errore')
console.log(error)
});
// props.SET_variab_aggiorna(!aux)
let lista = lista_variabili
removeObjectWithId(lista, id_array);
set_lista_variabili(lista)
set_cambio_stato1(!cambio_stato1)
}
router.put("/aggiungi_una_variabile/:postId", async (req, res) => {
console.log('CALCOLI Aggiunta una variabile')
console.log(req.params.postId)
console.log(req.body.nome)
// use try-catch
try {
const update_calcoli = await Domande.findOneAndUpdate(
{ _id: req.params.postId },
{ $push: { variabili_calcoli: { nome: req.body.nome, minimo: req.body.minimo, massimo: req.body.massimo, passo: req.body.passo} } }
);
res.json(update_calcoli);
} catch (err) {
res.json({ message: err });
}
});
router.patch('/cancella_variabile/:id/:id_array', async (req, res) => {
console.log('cancella una variabile nell array')
console.log(req.params.id)
console.log(req.params.id_array)
try {
const update_array = await Domande.updateOne(
{ _id: req.params.id }, { $pull: { variabili_calcoli: { _id: req.params.id_array } } }
);
res.json(update_array);
} catch (err) {
res.json({ message: err });
}
});
console.log('CALCOLI Aggiunta una variabile')
console.log(req.params.postId)
console.log(req.body.nome)
// use try-catch
try {
const update_calcoli = await Domande.findOneAndUpdate(
{ _id: req.params.postId },
{ $push: { variabili_calcoli: { nome: req.body.nome, minimo: req.body.minimo, massimo: req.body.massimo, passo: req.body.passo} } }
);
res.json(update_calcoli);
} catch (err) {
res.json({ message: err });
}
});
router.patch('/cancella_variabile/:id/:id_array', async (req, res) => {
console.log('cancella una variabile nell array')
console.log(req.params.id)
console.log(req.params.id_array)
try {
const update_array = await Domande.updateOne(
{ _id: req.params.id }, { $pull: { variabili_calcoli: { _id: req.params.id_array } } }
);
res.json(update_array);
} catch (err) {
res.json({ message: err });
}
});
Modifica di una riga in un array
router.patch('/aggiorna_risposta_multipla/:postId/:indice/:risposta', async (req, res) => {
console.log('Aggiorna risposta multipla')
console.log(req.params.postId)
console.log(req.params.risposta)
console.log(req.params.indice)
let stringa = 'risposte_multiple.' + req.params.indice + '.risposta'
console.log(stringa)
var oggetto = {};
oggetto[stringa] = req.params.risposta;
console.log(oggetto)
try {
const update_domanda = await Domande.updateOne(
{_id: req.params.postId},
{
$set: oggetto
}
);
res.json(update_domanda);
console.log('MODIFICA corretta dell array ')
} catch (err) {
res.json({ message: err });
console.log('ERRORE modifica dell array ')
}
});
router.patch('/aggiorna_risposta_multipla_key/:postId/:indice/:key', async (req, res) => {
console.log('Aggiorna risposta multipla')
console.log(req.params.postId)
console.log(req.params.key)
console.log(req.params.indice)
let stringa = 'risposte_multiple.' + req.params.indice + '.key'
console.log(stringa)
var oggetto = {};
oggetto[stringa] = req.params.key;
if (req.params.key === "cancella")
oggetto[stringa] = "";
console.log(oggetto)
try {
const update_domanda = await Domande.updateOne(
{_id: req.params.postId},
{
$set: oggetto
}
);
res.json(update_domanda);
console.log('MODIFICA corretta dell array ')
} catch (err) {
res.json({ message: err });
console.log('ERRORE modifica dell array ')
}
});
console.log('Aggiorna risposta multipla')
console.log(req.params.postId)
console.log(req.params.risposta)
console.log(req.params.indice)
let stringa = 'risposte_multiple.' + req.params.indice + '.risposta'
console.log(stringa)
var oggetto = {};
oggetto[stringa] = req.params.risposta;
console.log(oggetto)
try {
const update_domanda = await Domande.updateOne(
{_id: req.params.postId},
{
$set: oggetto
}
);
res.json(update_domanda);
console.log('MODIFICA corretta dell array ')
} catch (err) {
res.json({ message: err });
console.log('ERRORE modifica dell array ')
}
});
router.patch('/aggiorna_risposta_multipla_key/:postId/:indice/:key', async (req, res) => {
console.log('Aggiorna risposta multipla')
console.log(req.params.postId)
console.log(req.params.key)
console.log(req.params.indice)
let stringa = 'risposte_multiple.' + req.params.indice + '.key'
console.log(stringa)
var oggetto = {};
oggetto[stringa] = req.params.key;
if (req.params.key === "cancella")
oggetto[stringa] = "";
console.log(oggetto)
try {
const update_domanda = await Domande.updateOne(
{_id: req.params.postId},
{
$set: oggetto
}
);
res.json(update_domanda);
console.log('MODIFICA corretta dell array ')
} catch (err) {
res.json({ message: err });
console.log('ERRORE modifica dell array ')
}
});
Modifica di una riga in un array (Tramite id nell-array)
const Correggi_punto_inizio = (id_array) => {
console.log('ciaoerrore')
axios.patch('/video/correggi_punto_inizio_video/' + props.item._id + '/' + id_array + '/' + player.getCurrentTime())
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log('errore')
console.log(error)
});
// props.SET_variab_aggiorna(!aux)
props.SET_variab_aggiorna(current => !current)
}
console.log('ciaoerrore')
axios.patch('/video/correggi_punto_inizio_video/' + props.item._id + '/' + id_array + '/' + player.getCurrentTime())
.then((res) => {
console.log(res.data)
}).catch((error) => {
console.log('errore')
console.log(error)
});
// props.SET_variab_aggiorna(!aux)
props.SET_variab_aggiorna(current => !current)
}
router.patch('/correggi_punto_inizio_video/:id/:id_array/:tempo_inizio/', async (req, res) => {
console.log('BOOKMARK correggi punto di inizio')
console.log(req.params.id)
console.log(req.params.id_array)
console.log(req.params.tempo_inizio)
try {
const update_array = await VIDEO.updateOne(
{ _id: req.params.id, 'elenco_bookmark._id': req.params.id_array}, { $set: { 'elenco_bookmark.$.tempo': req.params.tempo_inizio } }
);
res.json(update_array);
} catch (err) {
res.json({ message: err });
}
});
console.log('BOOKMARK correggi punto di inizio')
console.log(req.params.id)
console.log(req.params.id_array)
console.log(req.params.tempo_inizio)
try {
const update_array = await VIDEO.updateOne(
{ _id: req.params.id, 'elenco_bookmark._id': req.params.id_array}, { $set: { 'elenco_bookmark.$.tempo': req.params.tempo_inizio } }
);
res.json(update_array);
} catch (err) {
res.json({ message: err });
}
});
ciao prova
ciao prova
ciao prova
ciao prova
ciao prova
ciao prova