2013-01-12 16 views
5

Próbowałem nauczyć się node.js. Próbuję utworzyć prosty aplet webowy node.js i front-koniec html-javascript, aby zalogować się przy użyciu autoryzacji Facebooka i zapisać identyfikator Facebooka w Mongodb.Błąd składni Node.js "nieoczekiwany token" w przypadku "eksportu".

Udało mi się to zrobić, korzystając z samouczków dostępnych w Internecie.

Teraz chcę posegregować kod na wiele plików, ale kiedy próbuję utworzyć trasę "użytkownik" i eksponować funkcje poprzez eksport. Otrzymuję następujący błąd.

module.exports.userLogin = function(req,res){ 
    ^SyntaxError: Unexpected token . 
    at Module._compile (module.js:437:25) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:362:17) 
    at require (module.js:378:17) 
    at Object.<anonymous> (C:\Users\Saumya\Desktop\vhsharedraft\web.js:2:6) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 

Z góry dziękuję.

EDIT # 1

module.exports.userLogin = function(req,res){ 
    graph.setAccessToken(req.session.fb.access_token); 

    graph.get("/me", function(err, data) { 
     if(err){ 
      console.log('Error obtaining data.'); 
      return; 
     } 
     console.log(data); 
    } 

} 

EDIT # 2

var mongo = require('mongodb'), 
graph = require('fbgraph'); 



exports.userLogin = function(req,res){ 
    graph.setAccessToken(req.session.fb.access_token); 

    graph.get("/me", function(err, data) { 
     if(err){ 
      console.log('Error obtaining data.'); 
      return; 
     } 
     console.log(data); 
    } 
} 

To wszystko, co mam w trasie użytkownika. Właściwie robiłem prawdziwy głupi błąd, zostawiłem przecinek przed graph = require('fbgraph') zamiast średnika. Po naprawieniu tego błędu składni, pojawia się ten błąd.

} 
^ 
SyntaxError: Unexpected token } 
    at Module._compile (module.js:437:25) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:362:17) 
    at require (module.js:378:17) 
    at Object.<anonymous> (C:\Users\Saumya\Desktop\vhsharedraft\web.js:2:6) 
    at Module._compile (module.js:449:26) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 

Dziękuję za szybkie odpowiedzi.

+0

Zwykle wystarczy zrobić 'exports.funcName = function () {} ', więc zacznę tam. Gdybym mógł zobaczyć resztę kodu wokół miejsca, w którym się nie udało, prawdopodobnie mógłbym być bardziej pomocny. –

+0

Jeśli masz na myśli "module.exports" zamiast "exports". Próbowałem też tego ostatniego z tym samym błędem. –

+0

To może być naprawdę głupi błąd, ponieważ jestem nowicjuszem. Czy potrzebujemy "wymagać" czegoś, aby użyć "eksportu"? –

Odpowiedz

11

Masz literówkę tutaj:

graph.get("/me", function(err, data) { 
    if(err){ 
     console.log('Error obtaining data.'); 
     return; 
    } 
    console.log(data); 
} 

Powinno być:

graph.get("/me", function(err, data) { 
    if(err){ 
     console.log('Error obtaining data.'); 
     return; 
    } 
    console.log(data); 
}); /* Note the added parenthesis here */ 

Również użyć exports.userLogin zamiast module.exports.userLogin

+3

Czy możesz wyraźnie pokazać inną część? Lub sprawić, że będzie to odważne? bardzo trudno jest przeczytać linka, szukając części, która różni się w dwóch przykładach –

Powiązane problemy