Loading...
a.angelov avatar a.angelov 1316 Точки

[Homework] ExpressJS Development - MongoDB and Mongoose Exercises

В първите години на СофтУни имаше практика да се споделят решения от домашните. Мисля, че това беше нещо много ценно и полезно за всички.

В тази връзка споделям линк към моите решения на първото упражнение, които със сигурност на се много правилни. Надявам се и други хора да покажат своите, както и да получа обратна връзка - къде бъркам и какво може да се промени/подобри. Всички печелим от това :)

Решенията: MongoDB and Mongoose Exercises

Тагове:
4
Express.js Web Development
evgenikolov avatar evgenikolov 304 Точки

Здравейте, разгледах вашите решение, но и вие като мен закоментирате всяка една операция към базата понеже иначе хвърля 

'Trying to open unclosed connection. mongoose' или нещо подобно.

Така и не разбрах как да затварям асинхронно connection-a след операциите за да се изпълняват следващите. Не знам дали изобщо се прави така.

Ако някой по-опитен знае как се случва това да сподели ако може. :)

function addImage (data) {
  let db = mongoose.connect(connection)
  db.then(() => {
    new Image({
      imageUrl: data.url,
      createdOn: new Date(),
      description: data.description
    }).save()
  })
  //db.disconnect()
}

addImage(
{ url: `https://some.url`,
  description: `such cat much wow`,
  tags: [`catstagram`] })

addImage(
{ url: `https://other.url`,
  description: `such cat much wow`,
  tags: [`catstagram`] })

db.disconnect() не върши работа в случая

 

0
18/10/2016 20:04:02
a.angelov avatar a.angelov 1316 Точки

Ами при теб проблема може би е, че отваряш кънекция към базата толкова пъти, колкото пъти извикваш функцията addImage. Пробвай да изнесеш mongoose.connect(connection) извън функцията addImage, както аз съм го направил в index.js файла...

1
VenelinGrozev avatar VenelinGrozev 130 Точки

Като инсталираш express после ще имаш само веднъж mongoose.connect() в app.js файла. Нали идеята е това да е някакъв сайт, който да е жив през цялото време и когато получи request да може да го изпълни веднага.

Ето един пример, домашното го направих с express - https://github.com/veneling/ExpressJS-tryouts

2
mhl.yo avatar mhl.yo 10 Точки

Аз се сблъсках със същия проблем, много заявки, някои от които с еднакви данни в много малък период от време. Говоря за първоначалните данни - таговете, след това е ок. Заобиколих проблема с setTimeout, но реално решение не открих.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.