2013-02-14 1 views
8

У меня есть следующий код в файле server.js.Запуск кода node.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/'); 

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

node server.js 

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

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

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

+0

Что происходит, когда вы делаете нода -V'? – Trevor

+0

Что происходит, когда вы переходите на 'http: //127.0.0.1: 8124 /'? –

+0

@Trevor: node -v не работает. Я получаю тот же результат – Muthukumar

ответ

14

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

Windows

  1. В CMD строке введите "где узел". Как отметил Майкл, это показывает, что вы, вероятно, виновник, что у вас есть 2 nodejs EXE, установленные на вашей машине.
  2. Перейдите в меню Пуск> Компьютер> Щелкните правой кнопкой мыши Свойства> Дополнительные параметры системы
  3. На вкладке Дополнительно выберите Переменные окружения
  4. В разделе Системные переменные выберите «Path» переменная
  5. Найти nodejs EXE, обычно «C : \ Program Files (x86) \ nodejs \ "
  6. Вырезать и вставить это в начало переменной« Путь ».Убедитесь, что пути разделены символом ";"
  7. Открыть новый CMD подсказкой и Cordova снова
+1

Так как я опубликовал исходное решение [здесь] (http://stackoverflow.com/a/24456503/428628), я думаю, что вы могли бы немного улучшить кредит, возможно, добавив свое решение в качестве комментария к моему , Я упоминаю об этом, потому что вы выглядите достаточно новым для SO и можете быть не знакомы с SO etiquette. –

+0

К сожалению, изменение 'PATH' нарушит SCM урожая. Поэтому, если вам нужно работать с Node.js * и * зарегистрировать свой код для урожая, как я, вы обречены. См. [Мой ответ] (http://stackoverflow.com/a/30979722/1461424) для лучшего решения. – Krumia

0

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

+0

Обновлен в узле 0.6. (Не уверен) от 'node' до' nodejs' – Mustafa

+0

Def проблема пути. Ницца. Я не знал, что 'nodejs' работал. – Trevor

0

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

2

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

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

+0

К сожалению, изменение переменной PATH нарушает SCM Harvest. – Krumia

-1

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

Окно:

set NODE_PATH=C:\nodejs 

ИЛИ

Установить переменную окружения для nodejs

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

(добавить путь содержать эту строку «C: \ nodejs»)

+0

Как это работает? –

8

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

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

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

Вы можете сделать лучше!

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

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

Так что я создал этот маленький пакетный файл и поместить его в директории, где у меня есть несколько других личных сценариев (этот каталог находится в моем PATH). Here's the gist for the script.

nodecmd.bat

@echo off 

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

start %ComSpec% 

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

Окна + R

nodecmd

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

Объяснение

Этот бит удаляет путь исполняемого файла жатвы от PATH переменной:

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

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

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

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

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

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

+1

Это хорошее решение. Я бы рекомендовал добавить немного более ясную информацию о том, что делает ваш подход, который является «исправляющим» узлом, выполнив его с помощью сценария-оболочки, который временно фиксирует PATH env var. Из вашего ответа неясно, что вам нужно всегда запускать узел из этой новой оболочки и что изменение PATH не является постоянным, что является ключом к тому, чтобы не нарушать Harvest. –

+0

Спасибо @MichaelR, я постараюсь получить ваши отзывы в ответ. – Krumia

+1

этот работал для меня, потому что у меня нет повышенных привилегий для изменения пути к среде – Glats

0

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

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

0

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

0

Я столкнулся с той же проблемой и просто изменил имя файла node.exe файла Harvest. Это ничего не сломало из 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"