仅在javascript中未定义的情况下分配变量
assigning variables only if undefined in javascript
我正试图以这种格式从url中提取两个关键字
localhost:3000/"charactername"/"realmname"
在这里,我想导出"charactername"answers"realmname",并将它们分配给变量。
我使用:
var charactername = req.url.split("/")[1];
console.log(charactername);
var realmname = req.url.split("/")[2];
console.log(realmname);
一开始一切都很好,但后来似乎有人请求"favicon.ico",由于有了新的请求url,我的变量变得未定义。我试图通过将代码片段封装在if语句中来解决这个问题,如下所示:
if(req.url !== '/favicon.ico'){
var charactername = req.url.split("/")[1];
console.log(charactername);
var realmname = req.url.split("/")[2];
console.log(realmname);
}
console.log输出告诉我变量被设置为正确的值,它从来没有说它是未定义的,所以它似乎可以工作。。然而,当代码的下一部分被执行时:
if(charactername.length > 0){
res.writeHead(200, {'Content-Type': 'text/html'});
renderer.view("header", {}, res);
//get json from battle.net
var characterProfile = new Profile(charactername, realmname);
//on "end"
characterProfile.on("end", function(profileJSON){
//Show profile
//Store values we need
var values = {
avatarURL: profileJSON.thumbnail,
charactername: profileJSON.name,
realmname: profileJSON.realm,
level: profileJSON.level
}
//Simple response
renderer.view("profile", values, res);
renderer.view("footer", {}, res);
res.end();
});
我收到一个错误,说无法读取未定义的属性长度。因此,变量似乎无论如何都变得不确定了。有人知道如何解决这个问题的线索吗?
if(x === undefined){
//do something
}
这会检查变量是否未定义,但我建议您首先检查导致错误的原因。
if(charactername&&charactername.length>0){
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 如何在不使用javascript执行的情况下为函数分配参数
- JavaScript's数组过滤器函数在没有分配函数的情况下使用-这里发生了什么
- 在切换情况下未分配输入
- 为什么在没有 var 关键字的情况下分配给变量时会出现引用错误
- 在以下情况下,map 如何分配新值
- 在不为原型分配属性的情况下扩展Javascript对象
- 函数装饰器在没有eval的情况下重新分配提升的内部函数
- 在不分配新箭头助手的情况下更新箭头助手的困难
- 仅在javascript中未定义的情况下分配变量
- 在没有重新分配的情况下,函数内的变量值随时间变化
- 在动态情况下为相应的图像分配按钮
- 是否可以在不分配内存的情况下存储值