Мой код следующий;
import express from "express";
const app = express();
const port = 3000;
app.listen(port, () =>{
console.info(`Server is running on ${port}.`)
});
Я не понимаю, в чем здесь дело. Я прохожу курс и следую предложенным шагам, но не знаю, как это исправить.
node index.js
^^^^^
Uncaught SyntaxError: Unexpected identifier 'index'
Я думал, что это синтаксическая ошибка в коде, но ничего не нашел. Из-за ошибки это звучит так, будто ему не нравится имя «индекс», которое мне показалось забавным.
Я запустил npm install express, затем node, node index.js. Ничего сверхсложного, возможно курс устарел и какой-то синтаксис здесь уже недействителен? (Относительно новичок в кодировании, в основном на JavaScript!)
Верно. Если вы сообщите нам, какую операционную систему и редактор/IDE вы используете, мы сможем посоветовать вам, как запустить командную оболочку для ее запуска.
Прошу прощения, это мой первый пост, я использую Windows 11, код Visual Studio и запускаю node index.js
в терминал VSC, который является bash. Я запускал эту команду для других проектов, и у меня не возникло проблем.
Сообщение об ошибке предполагает, что вы ввели node index.js
изнутри узла.
PS C:\git\foo> node
Welcome to Node.js v20.11.0.
Type ".help" for more information.
> node index.js
node index.js
^^^^^
Uncaught SyntaxError: Unexpected identifier 'index'
>
Сначала следует выйти из узла, затем в обычной командной строке (bash, PowerShell, cmd.exe) ввести node index.js
.
node
без аргументов приведет вас к REPL, интерактивному интерпретатору JavaScript. Он понимает только JavaScript плюс несколько специальных команд. «node index.js» не является допустимой командой JavaScript, отсюда и ошибка. Что вы можете сделать, так это загрузить и запустить index.js
с помощью команды .load
.
PS C:\temp> cat index.js
console.info('Hello world');
PS C:\temp> node
Welcome to Node.js v20.11.0.
Type ".help" for more information.
> .help
.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the REPL
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file
Press Ctrl+C to abort current expression, Ctrl+D to exit the REPL
> .load index.js
console.info('Hello world');
Hello world
undefined
> .exit
PS C:\temp>
Смотрите также: https://nodejs.org/en/learn/command-line/how-to-use-the-nodejs-repl
Понятно, я думал, что вам нужно сначала запустить node
, а затем node index.js
, вы должны сразу запустить последнее, а node
предназначено только для проверки версии/помощи?
node
— это реальный процесс, который будет читать/выполнять JavaScript. node
без аргументов открывает по сути «консоль JavaScript», позволяющую вам вводить то, что вы хотите (например, консоль браузера). С аргументами узел вместо этого выполнит данный скрипт. Есть документация по команде node
и ее аргументам.
@Мал, я отредактировал свой ответ, чтобы объяснить, как это могло сработать изнутри node
. Надеюсь, это поможет прояснить ситуацию. Другие среды программирования (например, Python и Perl) имеют нечто подобное.
Я очень ценю, что вы, ребята, разъяснили, большое спасибо! Я понимаю, что вы двое имеете в виду, я подумал, что это консоль, которая все это делает, и ее нужно сначала активировать, но тогда это объясняет ошибку.
Где вы набрали
node index.js
? Эта команда имеет смысл в определенных средах (командная строка), но не имеет смысла в других местах.