Как исправить `SyntaxError: Invalid or unknown token` при попытке запустить приложение Node.js - PullRequest
1 голос
/ 04 августа 2020

Я установил Node.js с официального сайта.

После этих документов Microsoft я попытался создать свое первое приложение Node.js, выполнив следующие действия :

  1. Откройте PowerShell и создайте новый каталог: mkdir NodeApp, затем введите каталог: cd NodeApp

  2. Откройте каталог и ваш app. js файл в VS Code: code .

  3. Добавьте простую строковую переменную («Hello World»), а затем отправьте содержимое строки на консоль, введя это в вашем файле "app. js":

var msg = 'Hello World';
console.log(msg);

Чтобы запустить файл «app. js» с Node.js, откройте терминал прямо в VS Code, выбрав View > Terminal .

В терминале введите node 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: Invalid or unexpected token
    at Object.compileFunction (vm.js:344:18)
    at wrapSafe (internal/modules/cjs/loader.js:1106:15)
    at Module._compile (internal/modules/cjs/loader.js:1140:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
    at Module.load (internal/modules/cjs/loader.js:1040:32)
    at Function.Module._load (internal/modules/cjs/loader.js:929:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47
PS C:\Users\Lenovo\OneDrive\Desktop\DevFiles\NodeApp> 

введите описание изображения здесь

Поскольку я новичок в Node.js (но не JavaScript), я не уверен, что с этим делать. Как я могу решить эту проблему?

Пожалуйста, помогите мне, мне нужно завершить этот проект для моего клиента в ближайшие несколько дней.

1 Ответ

4 голосов
/ 04 августа 2020

Ваш файл закодирован с помощью UTF-16 LE ("прямой порядок байтов").

Снимок экрана с кружком вокруг индикатора кодировки в строке состояния

Node.js не понимает эту кодировку по умолчанию (она предполагает UTF-8; на самом деле, я даже не вижу возможности для других кодировок ...), поэтому он задыхается от первого "символ" файла, поскольку этот "символ" не похож на допустимый синтаксис JavaScript. (В этом случае первые два байта представляют собой метку порядка байтов [BOM]. UTF-16 почти всегда начинается со спецификации, указывающей, является ли она прямым порядком байтов или прямым порядком байтов.)

Щелкните "UTF -16 LE »в нижней правой части vscode, выберите« Сохранить с кодировкой »и сохраните его как UTF-8 (не« UTF-8 с BOM », просто« UTF-8 »).

Тогда Node.js поймет.

...