javascript - Express js 4,Parse.com JSON 错误

标签 javascript jquery node.js express parse-platform

我正在尝试向 Parse.com 上托管的 Express JS 服务器发送 POST 调用。我这样发送数据:

var data = new Array();     
    data["firstName"] = firstName;
    data["lastName"] = lastName;
    data["dateOfBirth"] = dateOfBirth;
    data["mobileNumbe"] = mobileNumber;
    data["email"] = email;
    data["reEmail"] = reEmail;
    data["pw"] = pw;
    data["rePw"] = rePw;

    $.ajax({
            url: "/api/post/registerclient",
            type: "POST",
            dataType: "application/json",
            data: { data:data
                  },
            success: function(result){
                disabledButton("buttonRegister",false);
                if(data.success == true){
                    console.log("Neu registriert");
                }else{
                    showErrorMessageWithError(result.error);
                }
            },
            error:function(error){
                disabledButton("buttonRegister",false);

                var string = "Es ist ein Fehler aufgetreten!"
                showErrorMessageWithError(string);
            }
        });

在服务器端,我尝试用req.body.data捕获数据,但它是空的:

exports.registerClient = function(req,res){

//Data, get = firstName, lastName, dateOfBirth, mobileNumber, email, reEmail, pw, rePw
//Data, respond = success, error
var validation = helper.validateRegisterClient(req.body.data);


if(validation.length == 0){
    var user = new Parse.User();
    user.set("username", req.data.email);
    user.set("password", req.data.pw);
    user.set("email", req.data.email);

    //optional fields
    user.set("mobileNumber", req.data.mobileNumber);
    user.set("firstName", req.data.firstName);
    user.set("lastName", req.data.lastName);
    user.set("dateOfBirth", req.data.dateOfBirth);

    user.signUp(null, {
        success: function(user) {
            // Hooray! Let them use the app now.
            var success = true;
            var error = "";

            var json = {success: success, error: error};
            res.json(json);
        },
        error: function(user, error) {
            var success = false;

            var json = {success: success, error: error};
            res.json(json);
        }
    });
}else{
    var success = false;
    var error = validation;

    var json = {sucess: success, error: error};
    res.json(json);
}
}

我有一种感觉,我的 Express 应用程序可能配置错误,所以这是我的“init”:

var express = require('express');
var parseExpressHttpsRedirect = require('parse-express-https-redirect');
var parseExpressCookieSession = require('parse-express-cookie-session');
var app = express();

// Global app configuration section
app.set('views', 'cloud/views');  // Specify the folder to find templates
app.set('view engine', 'ejs');    // Set the template engine
app.use(parseExpressHttpsRedirect());
app.use(express.bodyParser());    // Middleware for reading request body
app.use(express.cookieParser('xxxxxxxxxxxxxxxxxxxx'));
app.use(parseExpressCookieSession({ cookie: { maxAge: 3600000 } }));

最佳答案

您的快速代码中有一个拼写错误。您引用了 req.data,而它应该是 req.body.data:

例如,这个:

var user = new Parse.User();
user.set("username", req.data.email);
user.set("password", req.data.pw);
user.set("email", req.data.email);

应该是这样的:

var user = new Parse.User();
user.set("username", req.body.data.email);
user.set("password", req.body.data.pw);
user.set("email", req.body.data.email);

此外,您的初始数据数组实际上是一个对象,应该以不同的方式实例化。所以这个:

var data = new Array();

应该是这样的:

var data = {};

我刚才注意到的另一件事是您在 ajax 成功回调中引用 data.successdata.success 在此范围内不存在。这应该是result.success

所以这个:

            if(data.success == true){
                console.log("Neu registriert");
            }else{
                showErrorMessageWithError(result.error);
            }

应该是:

            if(result.success == true){
                console.log("Neu registriert");
            }else{
                showErrorMessageWithError(result.error);
            }

关于javascript - Express js 4,Parse.com JSON 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735040/

相关文章:

javascript - 如何将导航栏移动到另一个位置

javascript - 在 jQuery 中移动链接,添加到字符串会导致 [object Object]

java - 尝试使用 json 数据而不是纯文本或 x-www-form-urlencoded 进行 JQuery 发布时出现 CORS 问题

jQuery,真实 :not operator equivalent?

node.js - mongo 可以 upsert 数组数据吗?

javascript - Chrome "Unresponsive Page"误报(自 Chrome 32 起)

javascript - 计算html页面上所有<a>的数量

javascript - 使用Javascript根据正文隐藏元素类别

node.js - 在 sails.js 中启动调度服务,永远从 sails 中访问所有水线模型

javascript - mongodb 更新后插入项目的顺序困惑