Javascript 我有';请求参数id';问题
我正在尝试从该对象动态加载内容Javascript 我有';请求参数id';问题,javascript,node.js,object,express,Javascript,Node.js,Object,Express,我正在尝试从该对象动态加载内容 projects = { test1:{ 'name': 'Test', 'description': 'This is just a test description for a test project.', 'img': { 'thumbnail': '/img/260x180.png', 'screenshot': '/img/1024x500.png'
projects = {
test1:{
'name': 'Test',
'description': 'This is just a test description for a test project.',
'img': {
'thumbnail': '/img/260x180.png',
'screenshot': '/img/1024x500.png'
},
'link': '/projects/test1'
},
test2:{
'name': 'Test2',
'description': 'This is just a test description for a test project.',
'img': {
'thumbnail': '/img/260x180.png',
'screenshot': '/img/1024x500.png'
},
'link': '/projects/test2'
}
};
如下
var id = req.params.id;
res.send('index/project',{title: title, project: projects.id});
而它又以未定义的形式回来了。我还尝试使用JSON.stringify(),但也没有成功。有什么想法吗?我想您可能正在寻找括号内的符号:
res.send('index/project',{title: title, project: projects[id]});
// Change here ------------------------------------------^^^^
在JavaScript中,您可以使用点符号和文字属性名(
obj.foo
)或括号符号和字符串属性名(obj[“foo”]
)访问对象的属性。当然,在后一种情况下,字符串可以是任何表达式的结果,包括变量引用。因此,假设req.params.id
是一个类似“test1”
,“test2”
,诸如此类的字符串,既然你把它放在id
中,你就应该使用projects[id]
来引用test1
或test2
项目的属性
res.send('index/project',{title: title, project: projects[id]});
// Change here ------------------------------------------^^^^
在JavaScript中,您可以使用点符号和文字属性名(
obj.foo
)或括号符号和字符串属性名(obj[“foo”]
)访问对象的属性。当然,在后一种情况下,字符串可以是任何表达式的结果,包括变量引用。因此,假设req.params.id
是一个类似“test1”
,“test2”
,诸如此类的字符串,既然您将其放在id
中,那么您将使用projects[id]
来引用test1
或test2
项目的属性id
?请求的URL是什么?什么是projects.id?从JS的角度来看,这真的没有太多意义。。。如果需要帮助,您必须详细说明您想要做什么:)除了括号/属性问题之外,我相信res.send需要两个参数:一个是HTTP状态代码,另一个是HTTP响应的主体。您可能需要res.render('templateName',{title:title})
什么是id
?请求的URL是什么?什么是projects.id?从JS的角度来看,这真的没有太多意义。。。如果需要帮助,您必须详细说明您想要做什么:)除了括号/属性问题之外,我相信res.send需要两个参数:一个是HTTP状态代码,另一个是HTTP响应的主体。您可能希望res.render('templateName',{title:title})
有趣。它工作得很好,我只是想确定我明白它为什么工作。是因为当我调用'projects.id'时,JavaScript正在查找要返回的属性和值,而当调用'projects[id]时,JavaScript正在搜索id变量所在的字符串吗holding@CollinMcGuire:projects.id
在projects
引用的对象上查找名为id
的属性projects[id]
在projects
引用的对象上的id
变量中的字符串中查找具有名称的属性。例如,从我在答案中的示例来看,这些都查找相同的属性:obj.foo
obj[“foo”]
obj['f'+'o'+'o']
var f=“foo”;obj[f]
有趣。它工作得很好,我只是想确定我明白它为什么工作。是因为当我调用'projects.id'时,JavaScript正在查找要返回的属性和值,而当调用'projects[id]时,JavaScript正在搜索id变量所在的字符串吗holding@CollinMcGuire:projects.id
在projects
引用的对象上查找名为id
的属性projects[id]
在projects
引用的对象上的id
变量中的字符串中查找具有名称的属性。例如,从我在答案中的示例来看,这些都查找相同的属性:obj.foo
obj[“foo”]
obj['f'+'o'+'o']
var f=“foo”;obj[f]