【问题标题】:Node.js consumption of json from Rails appNode.js 从 Rails 应用中消费 json
【发布时间】:2012-04-13 20:21:49
【问题描述】:

我有一个 json 字符串(来自我的 Rails 应用程序):

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

如何让我的 Node.js 应用使用这些数据?

这是我现在的 Node.js 应用程序中的代码:

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

这是我得到的错误:

提示 $ 节点 app.js 节点.js:201 扔 e; // process.nextTick 错误,或第一次滴答时的 'error' 事件 ^ SyntaxError:意外的标记 h - 在 Object.parse (native) - 在对象。 (/Documents/Coding/dustin/employees.js:19:22) - 在 Module._compile (module.js:441:26) - 在 Object..js (module.js:459:10) - 在 Module.load (module.js:348:31) - 在 Function._load (module.js:308:12) - 在 Module.require (module.js:354:17) - 在需要时(module.js:370:17) - 在对象。 (/Documents/Coding/dustin/app.js:34:17) - 在 Module._compile (module.js:441:26)

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 json node.js ruby-on-rails-3.1


【解决方案1】:

看到这个问题:

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

你应该先读取文件然后解析它。

var employees = JSON.parse(fs.readFileSync('employees.json', 'utf8'));

如果出于某种原因您的 Rails 应用程序在其他机器上运行,您需要为此发出 http 请求。你可以试试这个:

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);
  });
});

【讨论】:

  • 好的,这让我感到困惑。 ('employees.json', 'utf8') 部分...我没有 JSON 文件,我有一个可以在此处访问的 JSON 字符串:localhost:3000/employees/1.json
  • 好的,这意味着您必须使用 http 请求与您的 Rails 应用程序进行通信,就像我在第二种方法中提到的那样。
猜你喜欢
  • 2019-07-16
  • 1970-01-01
  • 2014-08-15
  • 2011-12-22
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 2018-04-28
相关资源
最近更新 更多