接收嵌套对象node.js

时间:2012-08-08 17:43:24

标签: javascript jquery ajax node.js

我有一个对象:

var val = {username:'gilbertbw',password:'password',password2:'password',email:'email@email.com',firstname:'gilbert',lastname:'BW',test:true};

我对它运行一些验证,然后将其发布到我的node.js服务器:

console.log(
            $.ajax({
                type: 'POST',
                url: '/signup',
                data: val,
                success: function(){console.log('data posted')},
                dataType: "json"
            })
        );

在服务器上我尝试只调用对象val:

console.log(val.username);

并像往常一样从帖子中拉出来:

val = req.param(val,null);
console.log(val.username);

但两次萤火虫吐出500 ISE:

    "{"error":{"message":"val is not defined","stack":"ReferenceError: val is not defined at exports.signup (C:\\Users\\Gilbert\\WebstormProjects\\NodeOfGames\\routes\\user.js:37:21)

如果我只是console.log(val);它打印为空 有问题的行是当我尝试将val.username记录到控制台时。你如何在node.js中发布一个发布的对象?

1 个答案:

答案 0 :(得分:0)

val是客户端变量。服务器无法知道您将此对象命名为“val”。

data: val就像:

data: {username:'gilbertbw',password:'password',password2:'password',email:'email@email.com',firstname:'gilbert',lastname:'BW',test:true}

因此您的服务器找不到val字段。

改为:

data: {
    "val": val
}

修改

另外,您的第req.param(val,null);行应为req.param("val",null);val = req.body.val;
reference