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]