Невозможно запустить «node index.js» из-за синтаксической ошибки

Мой код следующий;


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!)

Где вы набрали node index.js? Эта команда имеет смысл в определенных средах (командная строка), но не имеет смысла в других местах.

Pointy 04.07.2024 20:08

Верно. Если вы сообщите нам, какую операционную систему и редактор/IDE вы используете, мы сможем посоветовать вам, как запустить командную оболочку для ее запуска.

Tim Roberts 04.07.2024 20:09

Прошу прощения, это мой первый пост, я использую Windows 11, код Visual Studio и запускаю node index.js в терминал VSC, который является bash. Я запускал эту команду для других проектов, и у меня не возникло проблем.

Mal 04.07.2024 20:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сообщение об ошибке предполагает, что вы ввели 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 предназначено только для проверки версии/помощи?

Mal 04.07.2024 20:22
node — это реальный процесс, который будет читать/выполнять JavaScript. node без аргументов открывает по сути «консоль JavaScript», позволяющую вам вводить то, что вы хотите (например, консоль браузера). С аргументами узел вместо этого выполнит данный скрипт. Есть документация по команде node и ее аргументам.
Rogue 04.07.2024 20:35

@Мал, я отредактировал свой ответ, чтобы объяснить, как это могло сработать изнутри node. Надеюсь, это поможет прояснить ситуацию. Другие среды программирования (например, Python и Perl) имеют нечто подобное.

Ruud Helderman 04.07.2024 21:13

Я очень ценю, что вы, ребята, разъяснили, большое спасибо! Я понимаю, что вы двое имеете в виду, я подумал, что это консоль, которая все это делает, и ее нужно сначала активировать, но тогда это объясняет ошибку.

Mal 06.07.2024 03:10

Другие вопросы по теме