Javascript 如何修复尝试运行Node.js应用程序时的“SyntaxError:无效或意外令牌”

Javascript 如何修复尝试运行Node.js应用程序时的“SyntaxError:无效或意外令牌”,javascript,node.js,visual-studio-code,Javascript,Node.js,Visual Studio Code,我已从官方网站安装 接下来,我尝试使用以下步骤创建我的第一个Node.js应用程序: 打开PowerShell并创建一个新目录:mkdir NodeApp,然后输入目录:cd NodeApp 在VS Code:Code中打开目录和app.js文件。 添加一个简单的字符串变量(“Hello World”),然后在“app.js”文件中输入以下内容,将字符串内容发送到控制台: var msg='Hello World'; 控制台日志(msg); 要使用Node.js运行“app.js”文件,

我已从官方网站安装

接下来,我尝试使用以下步骤创建我的第一个Node.js应用程序:

  • 打开PowerShell并创建一个新目录:
    mkdir NodeApp
    ,然后输入目录:
    cd NodeApp

  • 在VS Code:Code中打开目录和app.js文件。

  • 添加一个简单的字符串变量(“Hello World”),然后在“app.js”文件中输入以下内容,将字符串内容发送到控制台:

  • var msg='Hello World';
    控制台日志(msg);
    
  • 要使用Node.js运行“app.js”文件,请选择View>terminal在VS代码中打开终端

  • 在终端中,输入
    节点app.js
    。您应该看到输出:“Hello World”

  • 完成这些步骤后,我有了这个控制台输出:

    PS C:\Users\Lenovo\OneDrive\Desktop\DevFiles\NodeApp>node app.js
    C:\Users\Lenovo\OneDrive\Desktop\DevFiles\NodeApp\app.js:1
    ��v
    SyntaxError:无效或意外的令牌
    在Object.compileFunction(vm.js:344:18)
    在wrapSafe(内部/modules/cjs/loader.js:1106:15)
    at模块编译(内部/modules/cjs/loader.js:1140:27)
    在Object.Module._extensions..js(internal/modules/cjs/loader.js:1196:10)
    在Module.load(内部/modules/cjs/loader.js:1040:32)
    at Function.Module._load(内部/modules/cjs/loader.js:929:14)
    在Function.executeUserEntryPoint[作为runMain](internal/modules/run_main.js:71:12)
    在internal/main/run_main_module.js:17:47
    PS C:\Users\Lenovo\OneDrive\Desktop\DevFiles\NodeApp>
    


    因为我对Node.js(但不是JavaScript)完全陌生,所以我不知道该怎么做。如何解决此问题?

    您的文件使用UTF-16 LE(“little endian”)编码

    Node.js默认情况下不理解这种编码(它假定为UTF-8;实际上,我甚至看不到其他编码的选项…),因此它会阻塞文件的第一个“字符”,因为该“字符”看起来不像有效的JavaScript语法。(在本例中,前两个字节是字节顺序标记[BOM]。UTF-16几乎总是以一个BOM开头,指示它是小端还是大端。)

    单击vscode右下角的“UTF-16 LE”,选择“编码保存”,并将其保存为UTF-8(不是“带BOM的UTF-8”,只是“UTF-8”)


    然后Node.js就会明白了。

    忽略这一点。。。Sorry该文件是
    UCS-2 LE BOM
    编码的-节点不喜欢这样,它也不喜欢
    UCS-2 BE BOM
    -从未见过VS代码这样做,但可能是您弄乱了VS代码设置