Javascript NodeJS分配变量不起作用
我一定是遗漏了什么。我无法使变量正确重写。当我控制台记录数据时,有一个返回的json对象。我认为我没有创建数据对象并将其分配给变量。如果我在控制台上记录tcResponse,那么我就没有定义Javascript NodeJS分配变量不起作用,javascript,node.js,express,Javascript,Node.js,Express,我一定是遗漏了什么。我无法使变量正确重写。当我控制台记录数据时,有一个返回的json对象。我认为我没有创建数据对象并将其分配给变量。如果我在控制台上记录tcResponse,那么我就没有定义 router.get('/testcase/:id', function(req, res) { var tcResponse; var Client = require('node-rest-client').Client; var options_auth={ u
router.get('/testcase/:id', function(req, res) {
var tcResponse;
var Client = require('node-rest-client').Client;
var options_auth={
user:"username",
password:"password"
};
client = new Client(options_auth);
args ={
data:{test:"hello"}, // data passed to REST method (only useful in POST, PUT or PATCH methods)
path:{
"baseUrl":"http://local.dev/flex/services/rest/latest",
"id":req.params.id
}, // path substitution var
parameters:{arg1:"hello",arg2:"world"}, // query parameter substitution vars
headers:{"test-header":"client-api"} // request headers
};
client.get("${baseUrl}/testcase/${id}", args, function(data, response){
// parsed response body as js object
console.log(data);
tcResponse = data;
// raw response
//console.log(response);
});
res.render('testcase', {
title: 'Zephyr Report - Test Case',
testCaseId: req.params.id,
tcResponseJson: tcResponse
});
});
我相信我遗漏了什么,但不确定是什么。谢谢
console.log(data);
tcResponse = data
// raw response
//console.log(response);
问题是您需要记录响应,而响应实际上没有定义。尝试记录tcResponse
console.log(tcResponse);
猜测一下,您正在尝试调用RESTAPI,然后返回结果数据 在这种情况下,问题是在调用
render
之前,您没有等待异步get
回调。您需要将使用异步响应的代码移动到异步函数的回调中
client.get("${baseUrl}/testcase/${id}", args, function(data, response) {
res.render('testcase', {
title: 'Zephyr Report - Test Case',
testCaseId: req.params.id,
tcResponseJson: data
});
});
您试图在哪里记录
tcResponse
?这个代码应该做什么?它实际上做什么?这是引入第三方RESTAPI。我只想将return json对象推送到视图中。我认为问题在于我在一个函数(client.get)中设置了tcReposonse=data,该函数不返回任何内容。是的,请参阅我的答案进行解释。我正在获取数据。我只是试着把它放在一个变量中,我可以在以后发送到视图,而不是在以后发送到视图。在收到数据之前,您向视图发送了undefined
,因为数据的接收是一个异步过程。好的,在我的jade模板pre#{tcResponseJson}中,网页显示的是[object object]。所以我猜这就是我的json对象是的,如果你把一个普通对象转换成一个字符串,你就会得到它。如果你想要一个JSON字符串,你需要JSON.stringify(data)
。我不希望它是一个字符串,我希望它是一个JSON对象,这样我就可以从中获取数据来在视图中构建我的表