节点服务器无法启动,给出意外的令牌 [关闭]
Posted
技术标签:
【中文标题】节点服务器无法启动,给出意外的令牌 [关闭]【英文标题】:Node server won't start, gives unexpected token [closed] 【发布时间】:2017-04-06 13:47:25 【问题描述】:每次我尝试启动我的服务器时,它都会给我一个很长的错误:
SyntaxError: Unexpected token =
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/ubuntu/workspace/isal/routes/index.js:5:15)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
语法错误的文件是这个 index.js 文件它声称有一个解析错误,最后一行出现了意外的标记,但是在意外的标记之后什么都没有,我真的没有看到模块导出的问题.
var express = require('express');
var router = express.Router();
var imgur = require('../services/imgur');
router.get('/', function(req, res)
res.send('Hello');
);
router.get('/latest', function(req, res)
);
router.get('/search/:q', function(req, res)
imgur.getImage(req.params.q, req.query.offset).then(ans =>
res.json(ans);
);
module.exports = router;
【问题讨论】:
看看/home/ubuntu/workspace/isal/routes/index.js
。您有语法错误。如果没有在第 5 行看到该文件,我们无法修复它。(5:15
告诉您要查看的文件中的行和列)
尝试检查主应用文件中的第 53 行
抱歉,我已经添加了问题文件中的内容。
您在上一次router.get
通话中缺少);
。 (一旦您看到此评论,我建议您删除该问题。)
另外:如果您使用的是旧版本的 Node,它可能不支持箭头函数(这可以解释为什么错误指向 =
)。当前版本的 Node do 支持箭头函数。
【参考方案1】:
您没有正确关闭最终函数调用:
var express = require('express');
var router = express.Router();
var imgur = require('../services/imgur');
router.get('/', function(req, res)
res.send('Hello');
);
router.get('/latest', function(req, res)
);
router.get('/search/:q', function(req, res)
imgur.getImage(req.params.q, req.query.offset).then(ans =>
res.json(ans);
); <---------------- Missing
);
module.exports = router;
当你遇到这样的语法错误时,它基本上意味着从错误发生的地方开始,并在你的文件中回溯,直到找到语法错误。如果抛出语法错误,总是会出现语法错误。您应该使用一种工具来编写带有语法高亮显示的代码,并为自己省去一大堆问题,比如 IDE。
【讨论】:
虽然这并没有解决整个服务器问题。它确实解决了导致它的问题之一,并帮助我找到了完整的解决方案。所以这行得通。以上是关于节点服务器无法启动,给出意外的令牌 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
“无法重新声明块范围的变量”和“SyntaxError:意外的令牌'导出'”[关闭]