节点/快速服务器。参数未定义

时间:2016-01-13 22:59:37

标签: node.js express

我的字符串参数出了什么问题?

var express = require('express');
var app = module.exports = express();
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var braintree = require("braintree");
Schema = mongoose.Schema;
var user = require('../shared/userFunctions.js')



//register functions
app.register = function(api) {
api.get('get_client_token', generateClientToken);
api.get('find_customer', findCustomer);
api.post('checkout', checkout);
api.post('create_customer', createCustomer);
api.post('create_payment_method', newPaymentMethod);
}

checkout函数是我用user.getuser

调用本地函数的地方
function checkout(request, response) {
var email = request.body.email;
var nonce = request.body.payment_method_nonce;
//var nonce = req.param("payment_method_nonce");
var amount = request.body.amount;



// Use payment method nonce here
gateway.transaction.sale({
    amount: amount,
    paymentMethodNonce: nonce,
}, function (err, result) {


    if(err){
        return response.send(500, "Checkout failed")
    }



   /* request.add({"amount": 10})
    request = nonce;
    newPaymentMethod(request);*/
   /* return res.send(200, "Checkout Success")*/
});

user.getuser(email, function(u){




    console.log("returning user: " + JSON.stringify(u))
    return response.send(200, JSON.stringify(u))


})
}

如果我将电子邮件地址硬核到mongoose查询中,它将返回用户。是什么赋予了?请提供有关我的节点异步样式的建议。我仍然是新手,但有时错误的第一个功能不起作用,有时我需要"下一个"。静态电子邮件有效,但我的风格是问题吗?

exports.getuser = function(email, res) {


var db = mongoose.connection;

mongoose.connect(process.env.MongoConnectionString);
db.on('error', function () {


});

db.once('open', function callback() {
    console.log("Sucessfully Logged into mongo");


    User.findOne({email:email}, function (err, user, next) {
        if (err) {
            mongoose.disconnect();
            return next(err);
        }
        mongoose.disconnect();
        console.log("Sending user response");
        if(!user){

            console.log("failed to get user")
            return
        }

        return res(user);
    });

});

修改 该函数负责调用内部函数。它似乎与checkout函数完全相同,除了它的神奇功能才能正常工作。

function getUser(request, response) {
var email = request.param('email');

user.getuser(email, function(user){

    return response.send(200, JSON.stringify(user))

})
};

使用REST客户端,我向您保证身体/参数不是问题所在。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你可以在你的api中检查你的paratmeter:

 var password = req.body.passwordBrow || '';
 var uidUser = req.body.uidUser || '';

然后检查它:

if(password && uidUser){
  // here you can log your parameters
}else{
  // the parameter is undefined, so you need to check your request in the client
       res.json({
            status : "not_ok",
            result : "empty_data",
            resultType : serverConst.EmptyParams
        });

}
希望它可以帮到你。