2013-01-12 5 views
5

Ho cercato di imparare node.js. Sto cercando di creare un semplice node.js web api e un front-end html-javascript per accedere utilizzando l'autenticazione di Facebook e memorizzare l'ID di Facebook in Mongodb.Errore di sintassi Node.js "token imprevisto" su "esportazioni".

Sono stato in grado di farlo seguendo i tutorial disponibili online.

Ora voglio segregare il codice in più file ma quando provo a creare un percorso "utente" ed esporre le funzioni tramite le esportazioni. Sto ottenendo il seguente errore.

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) 

Grazie in anticipo.

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

Questo è tutto quello che ho nel percorso dell'utente. In realtà, stavo facendo un vero errore stupido, ho lasciato una virgola di fronte a graph = require('fbgraph') invece di due punti. Dopo aver corretto questo errore di sintassi, sto ricevendo questo errore.

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

Grazie per le risposte rapide.

+0

Di solito basta fare 'exports.funcName = function () {} ', quindi inizierei da lì. Se potessi vedere il resto del codice intorno a dove non funziona, probabilmente potrei essere più utile. –

+0

Se ci si riferisce a "module.exports" anziché a "exports". Ho provato anche quest'ultimo con lo stesso errore. –

+0

Questo potrebbe essere un errore davvero stupido dato che sono un principiante. Abbiamo bisogno di "richiedere" qualcosa per usare "esportazioni"? –

risposta

11

Si dispone di un errore di battitura qui:

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

dovrebbe essere:

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

Anche utilizzare exports.userLogin invece di module.exports.userLogin

+3

Potrebbe mostrare esplicitamente la parte diversa? O renderlo audace? è molto difficile leggere attraverso la ricerca di linek per la parte che è diversa in due esempi –