我不知道为什么 req.param('length') 返回 0
I can't find out why req.param('length') is returning 0
我正在使用 Sails.js(基于 Express),我正在发送一个名为 length
的 form input
,它的 value
为 '1000'
,像这样:
<select name="length">
<option value="1000">1000</option>
</select>
服务器端,我做了一些测试,这就是我得到的
req.param('length'); // returns 0
req.params.length; // returns 0
req.params.all() // returns { length: '1000' }
我还检查了开发人员控制台的网络选项卡,我看到正在发出 POST
请求,参数为 length = "1000"
。
要么我遗漏了一些非常明显的东西,要么这是一个奇怪的故障。
为什么会这样,我怎样才能得到长度的值而不是得到“0”?
谢谢。
"length"是你should avoid when accessing objects的一个词。因此,您不应尝试直接访问 "length"(即 obj.length
)。您可能应该将基础 属性 名称更改为安全的名称,例如 @jaumard 提到的 quantity
:
<select name="quantity"></select>
然后就可以访问req.params.quantity
.
只需将您的 select 重命名为 myLength
,因为 length
是一个 JavaScript 关键字,这会让 sails 感到困惑。
编辑:
抱歉 length
不是关键字,但在 javascript values/objects(如字符串、数组)中可以默认设置 属性 length
.
感谢 Felix Kling 的更正
我正在使用 Sails.js(基于 Express),我正在发送一个名为 length
的 form input
,它的 value
为 '1000'
,像这样:
<select name="length">
<option value="1000">1000</option>
</select>
服务器端,我做了一些测试,这就是我得到的
req.param('length'); // returns 0
req.params.length; // returns 0
req.params.all() // returns { length: '1000' }
我还检查了开发人员控制台的网络选项卡,我看到正在发出 POST
请求,参数为 length = "1000"
。
要么我遗漏了一些非常明显的东西,要么这是一个奇怪的故障。 为什么会这样,我怎样才能得到长度的值而不是得到“0”?
谢谢。
"length"是你should avoid when accessing objects的一个词。因此,您不应尝试直接访问 "length"(即 obj.length
)。您可能应该将基础 属性 名称更改为安全的名称,例如 @jaumard 提到的 quantity
:
<select name="quantity"></select>
然后就可以访问req.params.quantity
.
只需将您的 select 重命名为 myLength
,因为 length
是一个 JavaScript 关键字,这会让 sails 感到困惑。
编辑:
抱歉 length
不是关键字,但在 javascript values/objects(如字符串、数组)中可以默认设置 属性 length
.
感谢 Felix Kling 的更正