Запуск кода node.js просто отображает идентификатор node

У меня есть следующий код в файле server.js.

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

Я использую командную строку и навигацию к папке, в которую загружается файл, а затем запустите команду

node server.js

Но я не получаю ожидаемый результат. Вместо этого я получаю

The node identifier for {My Machine Name} is v2hrfnqaj.

Примечание. У меня уже есть node, установленный на моей машине, и он работает нормально.

Ответ 1

Получил это, когда я пытался запустить команды кордовы. Шаги для решения:

Окна

  • В приглашении CMD введите "где node". Как отметил Майкл, это показывает вы, вероятно, виновник, что у вас есть 2 nodejs EXEs, установленные на вашей машины.
  • Перейдите в меню "Пуск" > "Компьютер" > щелкните правой кнопкой мыши "Свойства" > "Расширенные настройки системы"
  • На вкладке "Дополнительно" выберите "Переменные среды"
  • В разделе "Системные переменные" выберите переменную "Путь"
  • Найти nodejs EXE, обычно "C:\Program Files (x86)\nodejs \"
  • Вырезать и вставить это в начало переменной "Путь". обеспечивать пути разделяются символом ";"
  • Откройте новое приглашение CMD и повторите попытку.

Ответ 2

Это происходит, когда Harvest SCM установлен в вашей системе. Он имеет исполняемый файл с именем node.exe адресу <Program Files (x86)>\CA\SharedComponents\PEC\bin (где <Program Files (x86)> - это папка с вашими программными файлами x86). Этот путь присутствует в переменной PATH до пути к Node.js node.exe.

Обновление: вам не нужна сложная схема, указанная в старом ответе. Вам просто нужно открыть командную строку и запустить:

C:\> nodevars

nodevars.bat - это небольшой скрипт, который выполняет по сути то же самое, что описано ниже (но более безопасным способом). Если у вас установлен узел, этот скрипт должен быть в пути. (Если нет, обязательно добавьте C:\Program Files\nodejs к вашему пути. Но обязательно добавьте его в конце, чтобы Harvest SCM не сломался).


Все ниже устарело, но я оставлю это для любопытного читателя.

Вы можете сделать одно из следующих двух действий, которые вы можете сделать, чтобы преодолеть эту проблему:

  1. Удалите <Program Files (x86)>\CA\SharedComponents\PEC\bin из PATH среды PATH.
  2. Добавьте/переместите <Program Files (x86)>\nodejs в начало PATH среды PATH (это принятый в настоящее время ответ от djrpascu).

Ты можешь лучше!

Есть две проблемы с вышеуказанными подходами:

  1. Вы нарушаете функциональность Harvest SCM.
  2. Если у вас нет повышенных привилегий для изменения PATH, у вас нет выбора. (Спасибо @Glats)

Поэтому я создал этот маленький командный файл и поместил его в каталог, где у меня есть несколько других личных сценариев (этот каталог находится в моем PATH). Здесь суть сценария.

nodecmd.bat

@echo off

set path=%path:C:\Program Files (x86)\CA\SharedComponents\PEC\bin;=%;C:\Program Files (x86)\nodejs;

start %ComSpec%

Затем в следующий раз, когда вы захотите запустить Node.js вместо командной строки, вы откроете новый скрипт с помощью команды "Выполнить...".

Windows + R

nodecmd

Появится командная строка. Вы можете использовать эту командную строку для запуска node без хлопот.

объяснение

Этот бит удаляет путь исполняемого файла Harvest из PATH:

%path:C:\Program Files (x86)\CA\SharedComponents\PEC\bin;=%;

И это добавляет путь Node.js:

set path=...;C:\Program Files (x86)\nodejs;

Результатом является строка, которая содержит исходную переменную PATH минус путь сбора урожая плюс путь к узлу. И это установлено как переменная PATH в области действия текущего пакетного файла.

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

Следующая строка start %ComSpec% запускает командную строку. К этому времени переменная PATH будет изменена. С измененными переменными среды вы можете запустить узел в этой новой командной строке. Изменение переменной среды не влияет на остальную часть системы, обеспечивая бесперебойную работу программного обеспечения Harvest SCM.

Ответ 3

Не разбивайте SCM урожая, удаляя его из пути. Попробуйте это, откройте командную строку Windows (cmd) и передайте следующий пакетный файл nodejs, чтобы он установил вашу командную строку в среду nodejs. Наслаждайтесь командами node.

C: > "C:\Program Files\nodejs\nodevars.bat"

Ответ 4

Это старый, но я столкнулся с этой проблемой. Точное одно и то же сообщение (с моим машинным именем, конечно). Проблема заключалась в том, что на пути был еще один исполняемый файл node, в C:\Program Files (x86)\CA\SharedComponents\PEC\bin. Я нахожусь на машине с Windows, поэтому запуск where node показал два конфликтующих "node" исполняемых файла в пути.

Чтобы устранить проблему, я просто удалил каталог CA из переменной среды PATH.

Ответ 5

Вы также можете расставить приоритеты в окружающей среде. Шаги: Компьютер → Щелкните правой кнопкой мыши → Свойства → Расширенные настройки системы → Переменные среды → PATH (в списке системных переменных) → Изменить → Приоритет при перемещении вверх

Ответ 6

Я думаю, что вы используете неправильную команду node. Попробуйте найти или повторно загрузить вашу установку nodejs и добавить ее в свой путь в качестве первого каталога. Если вы используете linux или unix, вы можете попробовать "which node", чтобы увидеть, что выполняется. Обратите внимание, что в некоторых случаях исполняемый файл node.js называется nodejs, поэтому вы можете попробовать nodejs server.js, а также

Ответ 7

Я использовал командную строку node.js вместо командной строки Windows по умолчанию, и это сработало для меня. Не знал, почему он не работал в командной строке Windows по умолчанию.

Ответ 8

Конфликт в Харвесте был моей точной проблемой. Спасибо за публикацию. Также, чтобы добавить, проверьте обе переменные пути, чтобы подтвердить и перезапустить свой терминал, прежде чем повторять инициализацию.

Ответ 9

Я столкнулся с той же проблемой и просто изменил имя файла node.exe у Harvest. Это не сломало ничего из Harvest, и я могу продолжать работать с ним.

Измените имя команды урожая на node_.exe:

ren "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node.exe" "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node_.exe"

Ответ 10

Я также работал с той же проблемой - при определении пути для использования окон ниже параметра

Окна:

set NODE_PATH=C:\nodejs

ИЛИ

Задайте переменную окружения для nodejs

NODE_PATH=C:\nodejs
Path= C:\nodejs

(добавьте путь, содержащий эту строку "c:\nodejs" )