我正在尝试动态加载此对象的内容
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(),但也没用。有什么想法吗?
答案 0 :(得分:4)
我认为您可能正在寻找括号中的符号:
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
的{{1}}或test2
属性。