我有' req.param.id'问题

时间:2013-09-18 07:09:16

标签: 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'
        },
        '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(),但也没用。有什么想法吗?

1 个答案:

答案 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属性。