如何从Nodejs,mongooose中的回调函数返回一个值或字符串

时间:2017-07-28 10:24:57

标签: node.js mongoose

我有一个插入用户凭据的功能。我想从回调函数中返回值...

    var router = require('express').Router();

    var User = require('../Models').users;

    // function calling here 
    router.post('/signup', function (req, res) 
     {
        var result = User.signUp(req.body);
        res.send(result);
    });

module.exports = router;

 //implemetation of function

userSchema.statics.signUp = function signUp(obj) {

 var user = new userModel(obj);

    user.password = hash.generate(obj.password);

    return user.save(function (err, newuser) {
        if (err) 
        {
            return 'Error occured during insertion..';
        } else 
        {
            return 'You have sign up successfully...';
        }
    });
}

我想将响应作为字符串返回,但它显示undefined。应该怎么做?

3 个答案:

答案 0 :(得分:0)

由于异步性质。试试这个:

 router.post('/signup', function (req, res) 
 {

    var result = User.signUp(req.body, function(err, result){
       if(err){}
       else{res.send(result)}
    });;

});

userSchema.statics.signUp = function signUp(obj, callabck) {
 var user = new userModel(obj);
    user.password = hash.generate(obj.password);
    user.save(function (err, newuser) {
        if (err) 
        {
            callback( 'Error occured during insertion..',null);
        } else 
        {
            callback (null, 'You have sign up successfully...');
        }
    });
}

答案 1 :(得分:0)

使用回调即

var router = require('express').Router();

var User = require('../Models').users;

// function calling here 
router.post('/signup', function (req, res) 
 {

    User.signUp(req.body,function(err,result){
             res.send(result);
    });


});

module.exports = router;

//implemetation of function

userSchema.statics.signUp = function signUp(obj,callback) {

var user = new userModel(obj);

user.password = hash.generate(obj.password);

return user.save(function (err, newuser) {
    if (err) 
    {
        callback('Error occured during insertion..',null);
    } else 
    {
        callback(null,'You have sign up successfully...');
    }
});
}

答案 2 :(得分:0)

var router = require('express').Router();

var User = require('../Models').users;



router.post('/signup', function (req, res) 
 {

    var result = User.signUp(req.body, function(err, result){
       if(err){
       }
       else{
         res.send(result)
      }
    });

});

userSchema.statics.signUp = function signUp(obj, callabck) {
 var user = new userModel(obj);
    user.password = hash.generate(obj.password);
    user.save(function (err, newuser) {
        if (err) 
        {
            callback( 'Error occured during insertion..');
        } else 
        {
            callback(null, newuser);
        }
    });
}