2013-02-14 36 views
8

Tôi có mã sau trong tệp có tên server.js.Chạy mã node.js chỉ hiển thị số nhận dạng nút

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

tôi sử dụng dấu nhắc lệnh và naviage đến thư mục nơi recides tập tin và sau đó chạy lệnh

node server.js 

Nhưng tôi không nhận được kết quả mong muốn. Thay vào đó, tôi nhận được

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

Lưu ý: Tôi đã cài đặt nút trong máy và hoạt động tốt.

+0

gì xảy ra khi bạn làm 'nút -v'? – Trevor

+0

Điều gì sẽ xảy ra khi bạn truy cập vào 'http: //127.0.0.1: 8124 /'? –

+0

@Trevor: node -v does't work .. Tôi nhận được cùng một đầu ra – Muthukumar

Trả lời

14

Đã nhận được điều này khi tôi cố gắng chạy lệnh cordova. Bước để giải quyết:

của Windows

  1. Trong CMD prompt, gõ "nơi nút". Như Michael đã đề cập, điều này cho thấy bạn có khả năng là thủ phạm, rằng bạn có 2 nút bấm EXE được cài đặt trên máy của bạn.
  2. Navigate to Start> Computer> chuột phải chọn Properties> Advanced system settings
  3. Dưới tab Advanced, chọn Environment Variables
  4. Theo các biến hệ thống, chọn "Path" biến
  5. Tìm nodejs EXE, thường là "C : \ Program Files (x86) \ nodejs \ "
  6. Cắt và dán phần này vào đầu biến" Đường dẫn ".Đảm bảo các đường dẫn được phân tách bằng dấu ";"
  7. Mở CMD mới nhanh chóng và cố gắng cordova lại
+1

Vì tôi đã đăng giải pháp ban đầu [ở đây] (http://stackoverflow.com/a/24456503/428628), tôi nghĩ bạn có thể đã làm tốt hơn một chút để ghi nhận tôi, có lẽ thêm giải pháp của bạn làm nhận xét cho tôi . Tôi đề cập đến điều này bởi vì bạn có vẻ khá mới đối với SO và có thể không quen thuộc với SO nghi thức. –

+0

Thật không may thay đổi 'PATH' sẽ phá vỡ Harvest SCM. Vì vậy, nếu bạn cần phải làm việc với Node.js * và * kiểm tra mã của bạn để Harvest như tôi, bạn đang phải chịu số phận. Xem [câu trả lời của tôi] (http://stackoverflow.com/a/30979722/1461424) để có giải pháp tốt hơn. – Krumia

0

Tôi nghĩ bạn đang chạy lệnh nút sai. Hãy thử định vị hoặc tải lại cài đặt nodejs của bạn và thêm nó vào đường dẫn của bạn làm thư mục đầu tiên. Nếu bạn đang chạy Linux hoặc Unix, bạn có thể thử 'nút nào' để xem những gì đang được chạy. Lưu ý rằng trong một số trường hợp, thực thi Node.js được gọi là nodejs vì vậy bạn có thể muốn thử nodejs server.js cũng

+0

Nó được cập nhật trong nút 0.6. (Không chắc chắn) từ 'node' thành' nodejs' – Mustafa

+0

Def một vấn đề đường dẫn. Tốt đẹp. Tôi không biết 'nodejs' đã hoạt động. – Trevor

0

tôi đã sử dụng Node.js command prompt, thay vì dấu nhắc lệnh cửa sổ mặc định và nó làm việc cho tôi . Không biết tại sao nó không hoạt động trong cửa sổ lệnh mặc định.

2

Đây là cũ, nhưng tôi đã gặp phải vấn đề tương tự. Chính xác cùng một thông điệp (với tên máy của tôi tất nhiên). Vấn đề là có một nút thực thi khác trên đường dẫn, trong C:\Program Files (x86)\CA\SharedComponents\PEC\bin. Tôi đang sử dụng máy tính cửa sổ, do đó, chạy where node đã hiển thị hai tệp thi hành "nút" xung đột trong đường dẫn.

Để khắc phục sự cố, tôi vừa xóa thư mục CA khỏi biến môi trường PATH.

+0

Thật không may thay đổi biến 'PATH' phá vỡ SCM thu hoạch. – Krumia

-1

Tôi cũng đang chạy với cùng một vấn đề - trong khi xác định con đường cho các cửa sổ sử dụng dưới tham số

Windows:

set NODE_PATH=C:\nodejs 

HOẶC

Đặt biến môi trường cho nodejs

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

(nối đường dẫn chứa chuỗi này “c: \ nodejs”)

+0

Tính năng này hoạt động như thế nào? –

8

này xảy ra khi Harvest SCM được cài đặt trên hệ thống của bạn. Nó có một tệp thực thi với tên node.exe tại <Program Files (x86)>\CA\SharedComponents\PEC\bin (trong đó <Program Files (x86)> là thư mục tệp chương trình x86 của bạn). Đường dẫn này có trong số PATH biến trước đường dẫn đến node.exe của Node.js.

Bạn có thể làm một trong hai sau hai điều bạn có thể làm gì để khắc phục vấn đề này:

  1. Di <Program Files (x86)>\CA\SharedComponents\PEC\bin từ PATH biến môi trường.
  2. Thêm/di chuyển <Program Files (x86)>\nodejs vào đầu biến môi trường PATH (Đây là currently accepted answer từ djrpascu).

Bạn có thể làm tốt hơn!

Có hai vấn đề với phương pháp trên:

  1. Quý khách nghỉ ngơi chức năng Harvest SCM của.
  2. Nếu bạn không có đặc quyền nâng cao để thay đổi PATH, bạn đã hết tùy chọn. (Cảm ơn @Glats)

Vì vậy, tôi đã tạo tệp lô nhỏ này và đặt vào một thư mục nơi tôi có một số tập lệnh cá nhân khác (thư mục này nằm trong số 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% 

Sau đó, lần sau khi bạn muốn chạy Node.js, thay vì Command Prompt, bạn mở kịch bản mới với "Run..." command.

của Windows + R

nodecmd

Một dấu nhắc lệnh sẽ xuất hiện.Bạn có thể sử dụng dấu nhắc lệnh này để chạy node mà không gặp rắc rối.

Giải thích

chút này xóa đường dẫn thực thi của của Harvest từ PATH biến:

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

Và điều này cho biết thêm con đường của Node.js:

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

Kết quả là một chuỗi chứa biến PATH gốc trừ Đường dẫn thu hoạch, cộng Đường dẫn của Node. Và nó được thiết lập như biến PATH trong phạm vi của tập tin batch hiện tại.

Lưu ý: Bạn có thể phải thay đổi đường dẫn trong kịch bản cho phù hợp với thư mục cài đặt phần mềm trong hệ thống của bạn).

Dòng tiếp theo, start %ComSpec% bắt đầu nhắc lệnh. Vào thời điểm này, PATH variabe được sửa đổi. Với biến môi trường đã sửa đổi, bạn có thể chạy nút trong Dấu nhắc Lệnh mới này. Sửa đổi biến môi trường không ảnh hưởng đến phần còn lại của hệ thống, đảm bảo rằng phần mềm Harvest SCM chạy mà không bị ngắt.

+1

Đây là một giải pháp tốt. Tôi muốn khuyên bạn nên thêm một chút rõ ràng hơn về những gì cách tiếp cận của bạn không, đó là "sửa chữa" nút bằng cách thực hiện nó với một kịch bản wrapper tạm thời sửa chữa các env var PATH. Nó không phải là rõ ràng từ câu trả lời của bạn rằng bạn cần phải luôn luôn khởi động nút từ wrapper mới này, và rằng sự thay đổi PATH không phải là vĩnh viễn, đó là chìa khóa để không phá vỡ Harvest. –

+0

Cảm ơn @MichaelR, tôi sẽ cố gắng đưa phản hồi của bạn vào câu trả lời. – Krumia

+1

cái này làm việc cho tôi, bởi vì tôi không có đặc quyền nâng cao để thay đổi đường dẫn môi trường của tôi – Glats

0

Đừng phá vỡ SCM thu hoạch của bạn bằng cách xóa nó khỏi đường dẫn. Hãy thử cái này, mở cửa sổ dòng lệnh của bạn (cmd) và sau đó vượt qua tập tin batch nodejs sau để nó sẽ thiết lập dòng lệnh của bạn để môi trường nodejs. Thưởng thức các nút lệnh ở đó.

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

0

Xung đột thu hoạch là vấn đề chính xác của tôi. Cảm ơn vì đăng. Ngoài ra để thêm, kiểm tra cả hai biến Path để xác nhận và khởi động lại thiết bị đầu cuối của bạn trước khi thử init một lần nữa.

0

Tôi gặp phải sự cố tương tự và chỉ cần thay đổi tên của tệp node.exe từ Thu hoạch. Điều này đã không phá vỡ bất cứ điều gì từ Harvest và tôi có thể tiếp tục làm việc với nó.

Thay đổi tên lệnh Harvest để node_.exe:

ren "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node.exe" "C:\Program Files (x86)\CA\SharedComponents\PEC\bin\node_.exe" 
Các vấn đề liên quan