2013-02-14 11 views
8

Ho il seguente codice in un file chiamato server.js.L'esecuzione del codice node.js mostra solo un identificatore di nodo

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/'); 

Io uso il prompt dei comandi e naviage alla cartella in cui i recides file e quindi la corsa del comando

node server.js 

Ma non ottengo i risultati attesi. Invece ottengo

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

Nota: ho già installato il nodo nella mia macchina e funzionava correttamente.

+0

cosa succede quando si fa 'nodo -V'? – Trevor

+0

Cosa succede quando vai a 'http: //127.0.0.1: 8124 /'? –

+0

@Trevor: nodo -v non funziona .. Ottengo la stessa uscita – Muthukumar

risposta

14

Stava ricevendo questo quando stavo cercando di eseguire i comandi cordova. Procedura per risolvere:

di Windows

  1. In CMD prompt digitare "dove nodo". Come menzionato da Michael, questo dimostra che è probabile che tu abbia 2 EXE di nodejs installati su della tua macchina.
  2. Andare su Start> Computer> Fare clic su Proprietà> Impostazioni di sistema avanzate
  3. Nella scheda Avanzate, selezionare le variabili d'ambiente
  4. In Variabili di sistema, selezionare "Path" variabile
  5. Trova nodejs EXE, di solito "C : \ Programmi (x86) \ nodejs \ "
  6. Taglia e incolla questo all'inizio della variabile" Percorso ".Assicurati che i percorsi siano separati da un ";"
  7. Aprire un nuovo CMD pronta e provare Cordova nuovo
+1

Da quando ho pubblicato la soluzione iniziale [qui] (http://stackoverflow.com/a/24456503/428628), penso che avresti potuto fare un po 'meglio per darmi credito, magari aggiungendo la tua soluzione come commento per il mio . Dico questo perché sembri abbastanza nuovo per SO e potresti non avere familiarità con l'etichetta SO. –

+0

Sfortunatamente la modifica di 'PATH' interromperà Harvest SCM. Quindi se hai bisogno di lavorare con Node.js * e * check-in il tuo codice su Harvest come me, sei condannato. Vedi [la mia risposta] (http://stackoverflow.com/a/30979722/1461424) per una soluzione migliore. – Krumia

0

Penso che tu stia eseguendo il comando del nodo sbagliato. Provare a localizzare o ri-scaricare l'installazione di nodejs e aggiungerla al percorso come prima directory. Se stai usando linux o unix puoi provare 'quale nodo' per vedere cosa viene eseguito. Nota che in alcuni casi, il file eseguibile node.js si chiama nodejs quindi si consiglia di provare nodejs server.js così

+0

Viene aggiornato nel nodo 0.6. (Non sicuro) da 'node' a' nodejs' – Mustafa

+0

Def un problema di percorso. Bello. Non sapevo che 'nodejs' funzionasse. – Trevor

0

ho usato il node.js prompt dei comandi, al posto del prompt dei comandi di Windows di default e ha funzionato per me . Non sapevo perché non funzionava nel prompt dei comandi predefinito di Windows.

2

Questo è vecchio, ma mi sono imbattuto in questo stesso problema. Esatto stesso messaggio (con il mio nome macchina ovviamente). Il problema era che c'era un altro nodo eseguibile sul percorso, in C:\Program Files (x86)\CA\SharedComponents\PEC\bin. Sono su una macchina Windows, quindi l'esecuzione di where node mostrava i due eseguibili "nodi" in conflitto nel percorso.

Per risolvere il problema, ho rimosso la directory CA dalla variabile di ambiente PATH.

+0

Sfortunatamente cambiando la variabile 'PATH' si rompe Harvest SCM. – Krumia

-1

ero in corso anche con la stessa edizione - durante la definizione del percorso per le finestre utilizzare al di sotto del parametro

di Windows:

set NODE_PATH=C:\nodejs 

O

Impostare la variabile di ambiente per nodejs

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

(aggiungere il percorso contengono questa stringa “c: \ nodejs”)

+0

Come funziona? –

8

Questo accade quando Harvest SCM è installato sul vostro sistema. Ha un eseguibile con il nome node.exe allo <Program Files (x86)>\CA\SharedComponents\PEC\bin (dove <Program Files (x86)> è la cartella dei file di programma x86). Questo percorso è presente nella variabile PATHprima del il percorso di Node.js node.exe.

È possibile effettuare una delle seguenti due cose che puoi fare per superare questo problema:

  1. Rimuovere <Program Files (x86)>\CA\SharedComponents\PEC\bin da PATH variabile di ambiente.
  2. Aggiungi/sposta <Program Files (x86)>\nodejs all'inizio della variabile di ambiente PATH (Questo è il currently accepted answer da djrpascu).

Si può fare meglio!

Ci sono due problemi con gli approcci di cui sopra:

  1. si interrompe la funzionalità di Harvest SCM.
  2. Se non si dispone di privilegi elevati per modificare PATH, si è fuori dalle opzioni. (Grazie @Glats)

così ho creato questo piccolo file batch, e metterlo in una directory in cui ho diverse altre script personali (questa directory è nel mio 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% 

Quindi la prossima volta che si desidera eseguire Node.js, invece di Prompt dei comandi, si apre il nuovo script con "Run..." command.

di Windows + R

nodecmd

Apparirà un prompt dei comandi.È possibile utilizzare questo prompt dei comandi per eseguire node senza problemi.

Spiegazione

Questo bit elimina percorso dell'eseguibile del raccolto da PATH variabile:

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

E questo aggiunge il percorso del Node.js:

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

Il risultato è una stringa che contiene la variabile PATH originale meno Percorso di raccolta, più Percorso del nodo. Ed è impostato come variabile PATH nell'ambito del file batch corrente.

Nota: potrebbe essere necessario modificare il percorso della nello script in base alle cartelle di installazione del software nel sistema).

La riga successiva, start %ComSpec% avvia un prompt dei comandi. A questo punto, la variabile PATH viene modificata. Con le variabili di ambiente modificate, è possibile eseguire il nodo all'interno di questo nuovo prompt dei comandi. La modifica della variabile di ambiente non ha alcun effetto sul resto del sistema, assicurandosi che il software Harvest SCM funzioni senza interruzioni.

+1

Questa è una buona soluzione. Ti consiglio di aggiungere un po 'più di chiarezza su ciò che fa il tuo approccio, che è il nodo "fix" eseguendolo con uno script wrapper che corregge temporaneamente l'env var PATH. Non è chiaro dalla tua risposta che devi sempre avviare il nodo da questo nuovo wrapper e che la modifica PATH non è permanente, che è la chiave per non rompere Harvest. –

+0

Grazie a @MichaelR, proverò a inserire il tuo feedback nella risposta. – Krumia

+1

questo ha funzionato per me, perché non ho privilegi elevati per modificare il percorso del mio ambiente – Glats

0

Non rompere il tuo Harvest SCM rimuovendolo dal percorso. Prova questo, apri la riga di comando di Windows (cmd) e poi passa il seguente file batch nodejs in modo che imposti la riga di comando sull'ambiente nodejs. Goditi i comandi del nodo lì.

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

0

Il conflitto Harvest è stato il mio problema esatto. Grazie per la pubblicazione. Inoltre, per aggiungere, controlla entrambe le variabili Path per confermare e riavviare il terminale prima di tentare di nuovo l'init.

0

Ho affrontato lo stesso problema e ho semplicemente cambiato il nome del file node.exe da Harvest. Questo non ha infranto nulla da Harvest e posso continuare a lavorarci.

Cambiare il nome del comando di Harvest per node_.exe:

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