0

我正在尝试从此对象动态加载内容

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() 但这也不起作用。有任何想法吗?

4

1 回答 1

4

我想你可能正在寻找括号符号:

res.send('index/project',{title: title, project: projects[id]});
// Change here ------------------------------------------^^^^

在 JavaScript 中,您可以使用点表示法和文字属性名称 ( obj.foo) 或括号表示法和字符串属性名称 ( obj["foo"]) 来访问对象的属性。当然,在后一种情况下,字符串可以是任何表达式的结果,包括变量引用。因此,假设req.params.id是一个字符串,如"test1",等,"test2"因为您将其放入您idprojects[id]用于引用.test1test2projects

于 2013-09-18T07:15:09.867 回答