我无法找出req.param(' length')返回0的原因

时间:2015-03-27 19:20:07

标签: javascript node.js forms express sails.js

我使用的是Sails.js(基于Express),我发送的form input名为length的{​​{1}} value '1000' 1}},像这样:

<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"的参数。

要么我错过了一些非常明显的东西,要么这是一个奇怪的故障。 为什么会发生这种情况?如何获得长度值而不是获得&#34; 0&#34;?

感谢。

2 个答案:

答案 0 :(得分:1)

“长度”是您should avoid when accessing objects的单词。所以,你不应该试图直接访问“长度”(即obj.length)。您可能应该将基础属性名称更改为@jaumard提及的quantity之类的安全名称:

<select name="quantity"></select>

然后您可以访问req.params.quantity

答案 1 :(得分:1)

只需按myLength重命名您的选择,因为length是一个JavaScript关键字,这会让您感到困惑。

编辑:

抱歉length不是关键字,但在javascript值/对象(如字符串,数组)中,默认情况下可以设置属性length

感谢Felix Kling的更正