【发布时间】:2016-07-12 13:48:02
【问题描述】:
我正在尝试将服务器数据发送到我的 javascript 客户端,然后以 html(jade) 格式输出。
问题
1。我的 Js 客户端和 Html 变量(publicKey、名称、艺术家、图片、id)是“未定义的”
2.不清楚“try”或“catch”条件句的意思(也许这会影响某些事情)
我的研究
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
Basic Ajax send/receive with node.js
问题可能出在我的服务器代码、Javscript 客户端或 Jade 中吗?
Node.js 服务器
app.get('/user/:id', function (req, res) {
if (!req.user)
res.send(err);
if(req.user) {
try {
var id = req.params.id;
var dbUser = req.user;
res.send({
'publicKey': dbUser.publicKey,
'name': dbUser.name,
'artist': dbUser.artist,
'picture': dbUser.picture,
'id': dbUser.id
});
} catch (e) {
res.send({'status': 404});
}
} else {
res.send({'status': 403});
}
});
Js 客户端
var keysCache = {};
var xhr = new XMLHttpRequest();
xhr.open('GET', '/user/' + message.userid, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
var res = JSON.parse(xhr.responseText);
keysCache[message.userid] = {
'publicKey': res.publicKey,
'name': res.name,
'artist': res.artist,
'picture': res.picture,
'id': res.id
}
console.log(res.name);
displayOutput(message);
}
};
xhr.send(null);
翡翠
#chat
(...)
script.
window.user = {id:"#{user.id}", name: "#{user.artist}", picture: "#{user.picture}", gtoken: "#{user.gtoken}", eccKey: "#{user.eccKey}"};
script(src='/javascripts/client.js')
【问题讨论】:
-
我的 Js 客户端和 Html 是“未定义的” — 这是什么意思?您是说当您在地址栏中输入 HTML 文档的 URL 时,浏览器只是在视口中呈现单词
undefined? -
我不知道“try”或“catch”条件是什么意思——它们是 JavaScript 的基本部分。你试过reading up on them吗?
-
@Quentin 不好意思,我更新了我的问题,感谢 Js 资源。
-
你使用的是平均堆栈吗?快递?
-
尝试在浏览器中打开
/user/:id,然后发布结果
标签: javascript ajax node.js express pug