SyntaxError:createScript处的无效或意外令牌(vm.js:80:10)

时间:2018-05-06 19:56:38

标签: javascript node.js express

我只是习惯于学习节点,以及从powershell终端执行一个非常简单的应用程序:

node app.js

我收到以下异常:

SyntaxError: Invalid or unexpected token
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3
PS C:\Users\kisco\Source\Repos\library> node app.js
C:\Users\kisco\Source\Repos\library\app.js:1
(function (exports, require, module, __filename, __dirname) { ��v
                                                              ^

SyntaxError: Invalid or unexpected token
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3
PS C:\Users\kisco\Source\Repos\library>

这是app.js的来源:

var express = require('express');

var app = express();

app.get('/', function(req, res){
    res.send('Hello from my libvrary app')
})

app.listen(3000, function(){
    console.log('listening on port 3000');
});

我做错了什么?

7 个答案:

答案 0 :(得分:5)

您尝试使用encoding运行的文件似乎存在Node个问题。有时,使用某个命令行实用程序创建的文件会对文件产生一些编码问题。所以,我建议不要用它们来创建文件。只需使用Right-Click > New File > app.js创建文件,并使用此app.js替换旧文件。并尝试运行node app.js

答案 1 :(得分:0)

当尝试运行我编译为可执行文件的程序时,出现了同样的错误。我试图运行node而不是仅仅运行./program。所以我做了node ./program

尝试使用node运行可执行文件(与Linux的pkg一起编译)给了我几乎与您在此处遇到的完全相同的错误。

答案 2 :(得分:0)

我有一个类似的问题。我的问题是我从网站上复制粘贴了代码,而编辑器错误地设置了“”符号。因此,我将所有引号替换为“或”,以适用者为准。

那解决了我的问题。

答案 3 :(得分:0)

我也有同样的问题。确实这是一个编码问题。
我们的js文件正在解析从pdf复制/粘贴的另一个文件。 原来,文件中间存在​​一个损坏的空格字符。

删除它解决了我的问题。

答案 4 :(得分:0)

就我而言,我所要做的只是简单的webstorm(就您而言,它可能是您要使用的文本编辑器使您的Repository用于项目),删除我的项目文件夹并重新安装webstorm然后运行从github获取我的存储库后的以下内容

npm init 
npm install mysql
npm install colors

然后是节点index.js,我的服务器又重新启动了。

请注意,我必须将NodeJS更新到最新版本。

答案 5 :(得分:0)

我通过在 Ubuntu 16 上更新节点版本解决了这个问题

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

答案 6 :(得分:0)

我遇到了更有趣的问题。

SyntaxError: Invalid or unexpected token
    at createScript (vm.js:80:10)

但就我而言,我使用的是 nvm 并且忘记将节点版本切换到最新版本。切换到最新版本后它可以工作并且没有出现此异常