Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示不正确输出的节点/快速路线_Javascript_Json_Node.js_Express - Fatal编程技术网

Javascript 显示不正确输出的节点/快速路线

Javascript 显示不正确输出的节点/快速路线,javascript,json,node.js,express,Javascript,Json,Node.js,Express,我不熟悉Node/Express,在编写restfulapi的早期阶段,开发人员可以使用httpget访问/zwave/devices路径,以接收JSON格式的设备列表 我能够通过XHR请求从另一个源获取原始设备JSON,并在启动应用程序时成功地将其输出到控制台进行调试,但是,当我通过浏览器访问/zwave/devices时,控制台中显示的JSON输出是一个空对象{} 启动应用程序时,我会在控制台中返回预期的完整JSON数据。但是,当我在等待zwave.getDevicesJSON完成后访问/z

我不熟悉Node/Express,在编写restfulapi的早期阶段,开发人员可以使用httpget访问/zwave/devices路径,以接收JSON格式的设备列表

我能够通过XHR请求从另一个源获取原始设备JSON,并在启动应用程序时成功地将其输出到控制台进行调试,但是,当我通过浏览器访问/zwave/devices时,控制台中显示的JSON输出是一个空对象{}

启动应用程序时,我会在控制台中返回预期的完整JSON数据。但是,当我在等待zwave.getDevicesJSON完成后访问/zwave/devices时,我不会这样做。为什么?

提前谢谢你的帮助

server.js

zwave.js


是因为您从未将输出作为响应发送

试着把这个

app.get('/zwave/devices', function(req, res) {
   zwave.showDevicesJSON();         // Displays second, incorrectly; outputs {}
   console.log(zwave.devicesJSON);  // Displays third, incorrectly; outputs {}
 res.json(zwave.devicesJSON);
});
你可以在这里学习更多关于路线的知识


谢谢你的评论,但是这不是我需要的答案。即使使用res.jsonzwave.devicesJSON(发送响应),输出仍然是{}JSON.parsedata!您正在分析的数据是什么。您是否使用app.use/pathURI,require./realPathToYourRouteFile;创建了路由?
function Zwave() {
  this.devicesJSON = {};    
};

Zwave.prototype.getDevicesJSON = function(callback) {  
  // Working XHR code here to obtain device JSON.
  this.devicesJSON = JSON.parse(data); 
  callback.bind(this)();
};

Zwave.prototype.showDevicesJSON = function(req,res) {  
  console.log('Show Devices Is Firing');
  console.log(this.devicesJSON);      
};

module.exports = new Zwave();
app.get('/zwave/devices', function(req, res) {
   zwave.showDevicesJSON();         // Displays second, incorrectly; outputs {}
   console.log(zwave.devicesJSON);  // Displays third, incorrectly; outputs {}
 res.json(zwave.devicesJSON);
});