0

Ich habe einen JSON-String (aus meiner Rails app):Node.js Verbrauch von json von Rails-Anwendung

http://localhost:3000/employees/1.json 

Wie erhalte ich meine Node.js App diese Daten zu konsumieren?

Dies ist der Code, den ich jetzt in meiner Node.js app:

var employees = JSON.parse("http://localhost:3000/employees.json") 

Dies ist der Fehler Ich erhalte:

 
prompt$ node app.js 

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
SyntaxError: Unexpected token h 
    - at Object.parse (native) 
    - at Object. (/Documents/Coding/dustin/employees.js:19:22) 
    - at Module._compile (module.js:441:26) 
    - at Object..js (module.js:459:10) 
    - at Module.load (module.js:348:31) 
    - at Function._load (module.js:308:12) 
    - at Module.require (module.js:354:17) 
    - at require (module.js:370:17) 
    - at Object. (/Documents/Coding/dustin/app.js:34:17) 
    - at Module._compile (module.js:441:26) 
+3

möglich Duplikat [Node.js: Parse JSON-Objekt] (http://stackoverflow.com/questions/6486208/node-js-parse-json-object) – miku

+0

Wenn Sie besuchen http: // localhost: 3000/employees.json in Ihrem Browser, erhalten Sie JSON in Ihrem Browser oder erhalten Sie einen Fehler? – RyanWilcox

+0

Sie haben einen Syntaxfehler in Zeile 19 von employees.js – hagope

Antwort

0

Sehen Sie diese Frage:

Using Node.JS, how do I read a JSON object into (server) memory?

Sie sollten zuerst die Datei lesen und dann analysieren.

Wenn aus irgendeinem Grund Ihre Rails-App auf einem anderen Computer ausgeführt wird, müssen Sie eine http-Anfrage dafür machen. Man könnte dies versuchen:

var site = http.createClient(port, host); 

var request = site.request("GET", pathname, {'host' : host}); 
request.end(); 

request.on('response', function(response) { 
    var json = ''; 

    response.on('data', function(chunk) { 
    json += chunk; 
    }); 

    response.on('end', function() { 
    employees = JSON.parse(json); 
    }); 
}); 
+0

Okay, hier ist was mich verwirrt. Der Teil ('employees.json', 'utf8') ... Ich habe keine JSON-Datei, ich habe eine JSON-Zeichenfolge, auf die Sie hier zugreifen können: http: // localhost: 3000/employees/1.json – rzv

+0

ok das bedeutet, dass du mit deiner rails app mit einer http-anfrage kommunizieren musst, wie ich es im zweiten ansatz erwähnt habe. – mihai