Problemy z exportem/importem node js oraz mongoDB

0

Witam. Nwm czy tu no ale pisze... bo potrzebuje waszej pomocy... większość JS potrafię i wgl ale co do exportów importów mam problemy a teraz dochodzi do nich node js i już wysiadam nie wiem jak to zrobić totalnie... otóż mam stronę
zrobiłem ja wczoraj na szybo trochę tam jeszcze nie dział ale nie w tym rzecz... stworzyłem ją normalnie wiecie html css js i to tyle no ale chce zrobić panel sterowania do którego była by potrzebna mi edytowalna baza danych. no i tu pojawił się node i mongo... tylko że mam se szkielet aplikacji od noda:

const mongoClient = require("mongodb").MongoClient;
const url = "mongodb://127.0.0.1:27017";
const dbname = "mongo_work";
mongoClient.connect(url, {}, (error, client) => {
  if (error) {
    console.log("nie działa");
  } else {
    console.log("wszystko git");
    const db = client.db(dbname);
    db.collection("rand_main").insertMany(
      [
        {
          tablica: [
            "Warto się uczyć nawet od wroga.",
            "Pamiętaj zachować spokój umysłu <br> tak w nieszczęściu jak i w powodzeniu.",
            "Odważnym szczęście sprzyja.",
            "Nie nudzi cie te klikanie?",
            "Ta też lubie placki",
            "Ej czekaj to ty robisz ... <br> o boże, o kurwa!",
            "Nieno serio skończ wkońcu",
            "Strzel se w łeb <br> ponoć nie boli",
            "jak myslisz ile to robiłem <br> hmm? 1 noc kocie",
            "i po co ja ci to losuje...",
            "Czas tracony z przyjemnością <br> nie jest czasem straconym",
            "Skutki gniewu są dużo <br> poważniejsze  od jego przyczyn.",
            "Wiedza to władza. Ale <br> niewiedza nie oznacza jeszcze <br> braku władzy.",
            "Mamy Wszystko <br> Czego potrzebujesz ❤",
          ],
        },
      ],
      (error, result) => {
        if (error) {
          console.log("adding array field" + error);
        } else {
          console.log("Scuccesful add array");
        }
      }
    );
    db.collection("rand_main")
      .find("tablica")
      .toArray((error, results) => {
        console.log(results);
      });
  }
});

const express = require("express");
var path = require("path");
const port = 80;
const app = express();

app.set("view engine", "hbs");
app.use(express.static(path.join(__dirname, "public")));

app.get("/", (req, res) => {
  res.render("index");
});
app.get("/admin", (req, res) => {
  res.send();
});

app.listen(port);

i teraz wytłumaczczcie mi zrobiłem tą linie żeby móc se pliki polaczyć:

app.use(express.static(path.join(__dirname, "public")));

i spoko mam pliki się tam widzą strona mnie więcej działa (jak coś ona jest tak zrobiona ze jak macie ciemny motyw to może być brzydka ;|) ale jak po odebraniu tych danych z bazy które dostałem mogę je dodać do tamtego pliku js żeby tam operować na danych próbowałem już wszystkiego no ale nic nie działa....
jak to zrobić żeby na ten tablicy mógł operować inny plik js który został nie jest apką tylko chyba modułem nwm czy to sie tak nazywa ale od razu mówię tamten plik stylizuje mi stronę wiec z nodem wiecie document... nie jest poprawny musi się tak dać zrobić zrobiłem w 10h stronę a 5 już siedzę nad czytanie po googlu jak to ma działać i nic nie działa...

Struktura plików w załączniku: screenshot-20200725201229.png

Od razu mówię porządek w kodzie będę robił potem wiecie pomieszane angielskie nazwy i wgl więc proszę nie zwracać uwagi chodzi o same wytłumaczenie jak to działa
cały plik js ten nie od node... błagam pomóżcie mi z tym bo naprawdę wymiękam przy tym dajcie możliwości jakieś rozwiązania pomoc cokolwiek za wszystko serio dziękuje

// Line of the global variables for all page elements

var main_btn_content_c = document.querySelector(".main_btn_content");
var main_fot_btn_i = document.querySelector("#main_fot_btn");
var fotbar_btn_c = document.querySelectorAll(".fotbar_btn");
var fotbar_c = document.querySelector(".fotbar");
var fotbar_i = document.querySelector("#fotbar");
var content_c = document.querySelector(".content");
var content_i1 = document.querySelector("#content1");
var content_i2 = document.querySelector("#content2");
var content_i3 = document.querySelector("#content3");
var content_i4 = document.querySelector("#content4");
var img_c = document.querySelectorAll(".img");
var img_i1 = document.querySelector("#img1");
var img_i2 = document.querySelector("#img2");
var img_i3 = document.querySelector("#img3");
var img_i4 = document.querySelector("#img4");
var fotter_c = document.querySelector(".fotter");
var fotter_i = document.querySelector("#fotter");
var fotter_con_1_c = document.querySelector(".content_fot_1");
var fotter_con_2_c = document.querySelector(".content_fot_2");
var logo_i = document.querySelector("#logo");

// end of global variables

// functions && scripts
window.addEventListener("scroll", () => {
  var wysokosc_elementu = content_i1.getBoundingClientRect().height;
  var pozycja_elem_od_gory = content_i1.getBoundingClientRect().top;
  var pozycja_od_gory = wysokosc_elementu - pozycja_elem_od_gory;
  var wysokosc_strony = document.body.scrollHeight;
  var roznica = wysokosc_strony / (pozycja_od_gory * 2) - 1;
  if (roznica >= 1) {
    roznica = 1;
  } else if (roznica <= 0) {
    roznica = 0;
  } else if (roznica <= 1) {
    fotbar_i.setAttribute(
      "style",
      `background-color: rgba(0,0,0, ${1 - roznica});`
    );
  }
  if (1 - roznica >= 0.5) {
    logo_i.setAttribute("src", "main/src/white.svg");
    fotbar_btn_c.forEach((element, index, array) => {
      element.setAttribute("style", "color: #ffffff;");
    });
  } else if (1 - roznica < 0.5) {
    logo_i.setAttribute("src", "main/src/black.svg");
    fotbar_btn_c.forEach((element, index, array) => {
      element.setAttribute("style", "color: #000000;");
    });
  }
  var wysokosc_elementu2 = content_i2.getBoundingClientRect().height;
  var wysokosc_elementu3 = content_i3.getBoundingClientRect().height;
  var wysokosc_elementu4 = content_i4.getBoundingClientRect().height;
  var pozycja_elem_od_gory2 = content_i2.getBoundingClientRect().top;
  var pozycja_elem_od_gory3 = content_i3.getBoundingClientRect().top;
  var pozycja_elem_od_gory4 = content_i4.getBoundingClientRect().top;

  if (pozycja_elem_od_gory2 <= wysokosc_elementu2 / 2) {
    content_i2.style.transition = "1s ease-in-out";
    content_i2.style.opacity = "1";
    content_i2.style.transform = "translateY(0vh)";
  } else {
  }
  if (pozycja_elem_od_gory3 <= wysokosc_elementu3 / 2) {
    content_i3.style.transition = "1s ease-in-out";
    content_i3.style.opacity = "1";
    content_i3.style.transform = "translateY(0vh)";
  } else {
  }

  if (pozycja_elem_od_gory4 <= wysokosc_elementu4 / 2) {
    content_i4.style.transition = "1s ease-in-out";
    content_i4.style.opacity = "1";
    content_i4.style.transform = "translateY(0vh)";
  } else {
  }
  // console.log(pozycja_elem_od_gory3);
  // console.log(wysokosc_elementu3 / 2);
  // fotbar_c.setAttribute("style", "background: #000000ad;");
  // console.log(pozycja_od_gory);
  // console.log(wysokosc_elementu);
  // console.log(wysokosc_elementu - pozycja_od_gory);
  // console.log(document.body.scrollHeight);
  // content_i2
  // content_i3
  // content_i4
});
main_fot_btn_i.addEventListener("mouseover", function a() {
  logo_i.style.transform = "rotate(380deg)";
  logo_i.style.transition = "all 0.5s";

  setTimeout(function () {
    logo_i.style.transform = "";
    logo_i.style.transition = "";
  }, 500);
});
var fotbar_btn_tab = [...fotbar_btn_c];
fotbar_btn_c[1].addEventListener("click", () => {
  window.scrollTo({
    top: 1000,
    left: 0,
    behavior: "smooth",
  });
});
fotbar_btn_c[2].addEventListener("click", () => {
  window.scrollTo({
    top: 2000,
    left: 0,
    behavior: "smooth",
  });
});
fotbar_btn_c[3].addEventListener("click", () => {
  window.scrollTo({
    top: 3000,
    left: 0,
    behavior: "smooth",
  });
});
main_fot_btn_i.addEventListener("click", () => {
  window.scrollTo({
    top: 0,
    left: 0,
    behavior: "smooth",
  });
});
main_btn_content.addEventListener("click", () => {
  var rand = Math.floor(Math.random() * 14);

  var los = document.querySelector("#los");
  var cytat = data_base[rand];
  los.innerHTML = cytat;
});
var data_base = [
  "Warto się uczyć nawet od wroga.",
  "Pamiętaj zachować spokój umysłu <br> tak w nieszczęściu jak i w powodzeniu.",
  "Odważnym szczęście sprzyja.",
  "Nie nudzi cie te klikanie?",
  "Ta też lubie placki",
  "Ej czekaj to ty robisz ... <br> o boże, o kurwa!",
  "Nieno serio skończ wkońcu",
  "Strzel se w łeb <br> ponoć nie boli",
  "jak myslisz ile to robiłem <br> hmm? 1 noc kocie",
  "i po co ja ci to losuje...",
  "Czas tracony z przyjemnością <br> nie jest czasem straconym",
  "Skutki gniewu są dużo <br> poważniejsze  od jego przyczyn.",
  "Wiedza to władza. Ale <br> niewiedza nie oznacza jeszcze <br> braku władzy.",
  "Mamy Wszystko <br> Czego potrzebujesz ❤",
];

// variables for admin panel (node list replacet to array) =>

var node_all_divs = document.querySelectorAll("div");
var arr_all_divs = [...node_all_divs];
var node_all_btns = document.querySelectorAll("button");
var arr_all_btns = [...node_all_btns];
var node_all_img = document.querySelectorAll("img");
var arr_all_img = [...node_all_img];
var node_all_a = document.querySelectorAll("a");
var arr_all_a = [...node_all_a];
var node_all_p = document.querySelectorAll("p");
var arr_all_p = [...node_all_p];
var node_all_h2 = document.querySelectorAll("h2");
var arr_all_h2 = [...node_all_h2];

// all elements in 1 array

var all_elem = (nums = arr_all_a.concat(
  arr_all_btns,
  arr_all_divs,
  arr_all_h2,
  arr_all_img,
  arr_all_p
));

jeśli chcecie jeszcze coś innego to mogę dać tylko poproście ale pomóżcie... tu jeszcze screeny z noda i mondo że mi zwraca normalnie:
screenshot-20200725201811.png

za wszystkie uwagi odnośnie kody też dziękuje bo się poduczę przynajmniej

0

Strona to http://thscraft.pl
nie używam ani jquery ani boostrapa co do node js to express hbs i mongodb
co do kodu na łączenie czy exportów i importów to nie mam żadnego wywaliłem w c**** bo takie problemy z tym były że wolełem to wywalić... kod i tak już jest nie czytelny a co dopiero z setkami inntch błędów

żeby dokładnie wytlumaczyć z pomocą nnode js pobieram do index.js tablice z bazy danych. musze ją jakoś przekazać do pliku game js czyli tego który zarządza stylem strony tą tablice i na niej operować tam w tym pliku ale nie wiem jak
a wiec potrzebuje
w pliku game.js nie mieć tej zmiennej na sztywno:

var data_base = [
  "Warto się uczyć nawet od wroga.",
  "Pamiętaj zachować spokój umysłu <br> tak w nieszczęściu jak i w powodzeniu.",
  "Odważnym szczęście sprzyja.",
  "Nie nudzi cie te klikanie?",
  "Ta też lubie placki",
  "Ej czekaj to ty robisz ... <br> o boże, o kurwa!",
  "Nieno serio skończ wkońcu",
  "Strzel se w łeb <br> ponoć nie boli",
  "jak myslisz ile to robiłem <br> hmm? 1 noc kocie",
  "i po co ja ci to losuje...",
  "Czas tracony z przyjemnością <br> nie jest czasem straconym",
  "Skutki gniewu są dużo <br> poważniejsze  od jego przyczyn.",
  "Wiedza to władza. Ale <br> niewiedza nie oznacza jeszcze <br> braku władzy.",
  "Mamy Wszystko <br> Czego potrzebujesz ❤",
];

tylko potrzebuje ją pobierać z bazy danych

1

Przede wszystkim wrzuć budowanie bazy do osobnego pliku, bo teraz przy każdym uruchomieniu tam walisz. Oczywiście też ją wyczyść, bo obecnie jest pewnie niezły burdel.

Tam gdzie obsługujesz zapytanie do roota zrób zapytanie do bazy i to co przyjdzie przekaż do localsów metody render. W pliku hbs zrób sobie znacznik <script> i tam wypisz to w deklaracji zmiennej. W ten sposób będziesz miał te dane po stronie przeglądarki.

0
tsz napisał(a):

Przede wszystkim wrzuć budowanie bazy do osobnego pliku, bo teraz przy każdym uruchomieniu tam walisz. Oczywiście też ją wyczyść, bo obecnie jest pewnie niezły burdel.

Tam gdzie obsługujesz zapytanie do roota zrób zapytanie do bazy i to co przyjdzie przekaż do localsów metody render. W pliku hbs zrób sobie znacznik <script> i tam wypisz to w deklaracji zmiennej. W ten sposób będziesz miał te dane po stronie przeglądarki.

i właśnie jak to wrzucić do innego pliku w sensie na razie to o komentuje jeżeli to pomoże
o ten fragment chodziło no nie? :

db.collection("rand_main").insertMany(
    //   [
    //     {
    //       tablica: [
    //         "Warto się uczyć nawet od wroga.",
    //         "Pamiętaj zachować spokój umysłu <br> tak w nieszczęściu jak i w powodzeniu.",
    //         "Odważnym szczęście sprzyja.",
    //         "Nie nudzi cie te klikanie?",
    //         "Ta też lubie placki",
    //         "Ej czekaj to ty robisz ... <br> o boże, o kurwa!",
    //         "Nieno serio skończ wkońcu",
    //         "Strzel se w łeb <br> ponoć nie boli",
    //         "jak myslisz ile to robiłem <br> hmm? 1 noc kocie",
    //         "i po co ja ci to losuje...",
    //         "Czas tracony z przyjemnością <br> nie jest czasem straconym",
    //         "Skutki gniewu są dużo <br> poważniejsze  od jego przyczyn.",
    //         "Wiedza to władza. Ale <br> niewiedza nie oznacza jeszcze <br> braku władzy.",
    //         "Mamy Wszystko <br> Czego potrzebujesz ❤",
    //       ],
    //     },
    //   ],
    //   (error, result) => {
    //     if (error) {
    //       console.log("adding array field" + error);
    //     } else {
    //       console.log("Scuccesful add array");
    //     }
    //   }
    // );
0

screenshot-20200725215218.png
baze już wyczyściłem dobra dalej

0

localsów metody render chodzi ci o localStorage ? bo to nie działa w sensie nawet nie da dojść do konvertowania na stringa bo node tego nie obsługuje jak byś mógł podpowiedzieć o co chodzi z tym byłbym wdzięczny.

0

dodałem coś takiego tylko nwm czy to bedzie działać bo nwm jak działają te localsy i teraz jak bym musiał sformółować <script> żeby to zadziałało?

mongoClient.connect(url, {}, (error, client) => {
  if (error) {
    console.log("nie działa");
  } else {
    console.log("wszystko git");
    const db = client.db(dbname);
    db.collection("rand_main")
      .find("tablica")
      .toArray(function vi(error, results) {
        pieski(results);
      });
  }
});
var piesek;
function pieski(pies) {
  piesek = pies;
}
};
const express = require("express");
var path = require("path");
const e = require("express");
const port = 80;
const app = express();
app.set("view engine", "hbs");
app.use(express.static(path.join(__dirname, "work")));

app.get("/", (req, res) => {
  res.render("index", { arr: { piesek } });
});
app.get("/admin", (req, res) => {
  res.send();
});

app.listen(port);

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