2015-06-13 10 views
5

Wieloletni użytkownik, pierwszy raz zadając pytanie.Nodejs: "wymaganie" modułu w Nodejs nie działa z określoną nazwą pliku

Mam pliku (nazwijmy go file.js), w których jestem próby wymagają innego pliku o nazwie user.service.js na początku pliku:

var userService = require('./user.service'); 

jestem dość Upewnij się, że ścieżka jest poprawna i że plik user.service.js eksportuje zaludnione obiektu:

W user.service.js:

module.exports = { 
    signIn: signIn, 
    signUp: signUp, 
    updateProfile: updateProfile 
}; 

jednak userService jest zawsze pusty obiekt {}. Dziwne jest to, że jeśli ponownie utworzę plik z inną nazwą w tym samym katalogu (na przykład user.service2.js), instrukcja require działa poprawnie. Lub, jeśli zmieniam nazwę pliku.js na coś innego, np. file2.js, połączenie działa. Dodatkowo, jeśli wymagam pliku wewnątrz funkcji user.service.js, instrukcja również działa. Jednak wolałbym mieć instrukcję require na górze pliku i dostępna dla wszystkich funkcji w niej zawartych.

Z góry dziękujemy za pomoc.

Edit:

Oto niektóre przykładowy kod:

var userService = require('./user.service'); 

var testFunc = function() { 
    console.log(userService); 
    // this logs: {} 

    var userServiceInternal = require('./user.service'); 
    console.log(userServiceInternal); 
    // This logs: 
    // { 
    //  signIn: [Function], 
    //  signUp: [Function], 
    //  updateProfile: [Function] 
    // } 
}; 
+0

Powinieneś wkleić bardziej kompletny przykład kodu. Jestem pewien, że to coś nieznacznego. – naomik

+0

Którą wersję node.js używasz? Wydaje się pracować z v0.12.0 – zaynetro

+0

Używam v0.12.2 – Jack12358

Odpowiedz

2

I zdobione ... Miałem kołową zależność. Dzięki za komentarze!