Node.js语法错误:"exports."上的“意外标记”

6

我一直在尝试学习Node.js。 我正在尝试创建一个简单的Node.js Web API和HTML-JavaScript前端,使用Facebook身份验证进行登录,并将Facebook ID存储在Mongodb中。

我通过遵循在线教程成功做到了这一点。

现在我想将代码分成多个文件,但是当我尝试创建一个名为“用户”的路由并通过exports公开函数时,出现以下错误。

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)

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

这是我在用户路由中的全部内容。 实际上,我犯了一个非常愚蠢的错误,在 graph = require('fbgraph') 前留下了逗号而不是分号。 修复这个语法错误后,我得到了以下错误。

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

通常你只需要做 exports.funcName = function() { },所以我会从那里开始。如果我能看到它失败的周围代码的其余部分,我可能会更有帮助。 - Jamund Ferguson
如果你指的是"module.exports"而不是"exports",我也尝试过后者,但出现了相同的错误。 - Saumya Tripathi
这可能是一个非常愚蠢的错误,因为我是新手。 我们需要“require”一些东西来使用“exports”吗? - Saumya Tripathi
请使用exports.userLogin =而不是module.exports.userLogin。其次,文件中是否有其他代码?第三,你是如何得到那个错误的,你使用了什么命令? - Jamund Ferguson
1个回答

12

您这里有个拼写错误:

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

它应该是:

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

请使用exports.userLogin代替module.exports.userLogin


5
你能明确展示不同的部分吗?或者将其加粗吗?在两个例子中寻找不同的部分非常困难。 - Vitaliy Lebedev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接