2013-01-12 7 views
5

Ich habe versucht, node.js zu lernen. Ich versuche, eine einfache node.js Web API und ein HTML-Javascript-Front-End zu erstellen mit Facebook-Authentifizierung und Facebook-ID in Mongodb zu speichern.Node.js Syntaxfehler "unerwartetes Token" auf "exportiert."

Ich konnte es tun, indem Sie Online-Tutorials folgen.

Jetzt möchte ich den Code in mehrere Dateien trennen, aber wenn ich versuche, eine Route "Benutzer" erstellen und Funktionen über Exporte verfügbar machen. Ich erhalte den folgenden Fehler.

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) 

Vielen Dank im Voraus.

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); 
    } 
} 

Das ist alles, was ich in der Benutzer Route haben. Eigentlich machte ich einen wirklich dummen Fehler, ich ließ ein Komma vor graph = require('fbgraph') statt Semikolon. Nachdem ich diesen Syntaxfehler behoben habe, erhalte ich diesen Fehler.

} 
^ 
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) 

Vielen Dank für schnelle Antworten.

+0

Normalerweise müssen Sie nur tun 'exports.funcName = function () {} ', also würde ich dort anfangen. Wenn ich den Rest des Codes sehen könnte, wo er versagt, könnte ich wahrscheinlich hilfreicher sein. –

+0

Wenn Sie auf "module.exports" anstelle von "exports" verweisen. Ich habe letzteres auch mit demselben Fehler versucht. –

+0

Dies könnte ein wirklich dummer Fehler sein, da ich ein Neuling bin. Müssen wir etwas "benötigen", um "Exporte" zu verwenden? –

Antwort

11

Sie haben einen Tippfehler hier:

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

es sein sollte:

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

verwenden auch exports.userLogin statt module.exports.userLogin

+3

Konnten Sie den unterschiedlichen Teil ausdrücklich zeigen? Oder es fett machen? Es ist sehr schwer, Linek nach dem Teil zu suchen, der in zwei Beispielen anders ist –