Ако вече сте се свързали с базата данни, once събитието няма да се активира отново. Базата данни вече е била свързана за целия процес NodeJs, когато е била глобално свързана (извън функцията).
Извикването на mongoose.connect('mongodb://localhost/test'); прави връзката и я отваря.
Така че, вместо да го отваряте при всяко извикване на функция (което би било неефективен начин за взаимодействие с MongoDB), connect веднага, когато се стартира приложението NodeJs, и имайте предвид, че ще има период, в който връзката може да не е налична (тъй като е асинхронна), или не стартирайте приложението (listen ), докато връзката приключи (или с изчакване). С Mongoose, докато се установи връзката, всички команди се буферират (но това може да не е поведението, което искате). Можете да използвате open събитие, ако искате да знаете кога връзката е завършена.
Връзката се намира тук:mongoose.connection ако използвате connect функция за създаване на връзка.
След като връзката бъде отворена, можете да я използвате от вашия popSingleData функция без използване на once събитие и обратно повикване. Има автоматично поддържан набор от връзки.
За повече информация относно връзките прочетете тук .