我试图找出为什么我的node.js应用程序在尝试将对POST请求主体的一部分的引用作为对象文字的键传递时不喜欢它。请考虑以下事项:
//////////CODE SNIPPET
//problem section of object
"sort": [
{
req.body.sortField: {
"order": req.body.direction,
"unmapped_type": "boolean"
}
}
]
//////////REQUEST BODY
{
"fromDate": 1468213200000,
"toDate": 1468219300000,
"sortField": "#timestamp_milli",
"direction": "desc",
"columns": [
"*"
]
}
我能够通过引用将direction属性作为值传递而没有任何问题,但是当我尝试将sort属性作为键传递时,我在运行应用程序时遇到错误:
req.body.sort: {
^
SyntaxError: Unexpected token .
我的猜测是我无法将引用作为对象文字中的键传递。如果这是真的,为什么?有没有解决这个问题?如果它不是真的,我在这里的理解是什么?
感谢您的时间。
编辑:JSON和JavaScript对象文字之间的澄清。还有,回答。谢谢大家!
答案 0 :(得分:5)
从ES6开始,你可以使用动态键(这就是你想要的)。它的语法需要方括号:
"sort": [
{
[req.body.sortField]: {
"order": req.body.direction,
"unmapped_type": "boolean"
}
}
]
请注意,这不是JSON,而是JavaScript对象文字。
答案 1 :(得分:0)
试试
"sort": [
{
[req.body.sortField]: {
"order": req.body.direction,
"unmapped_type": "boolean"
}
}
]
编辑:对不起,我想念那个部分