Javascript 显示不正确输出的节点/快速路线
我不熟悉Node/Express,在编写restfulapi的早期阶段,开发人员可以使用httpget访问/zwave/devices路径,以接收JSON格式的设备列表 我能够通过XHR请求从另一个源获取原始设备JSON,并在启动应用程序时成功地将其输出到控制台进行调试,但是,当我通过浏览器访问/zwave/devices时,控制台中显示的JSON输出是一个空对象{} 启动应用程序时,我会在控制台中返回预期的完整JSON数据。但是,当我在等待zwave.getDevicesJSON完成后访问/zwave/devices时,我不会这样做。为什么? 提前谢谢你的帮助 server.js zwave.jsJavascript 显示不正确输出的节点/快速路线,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
是因为您从未将输出作为响应发送 试着把这个
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);
});