2016-05-21 4 views
0

Javaのバックグラウンドから来ているので、コールバックが私のために混乱することがあります。NodeJS&Mongoose - CRUDモジュールのコードを外しても呼び出されません。

とにかく、私はCRUDモジュール(crudUser.jsを作成することができれば、それはいいだろう、私はシンプルなマングースのユーザー・スキーマを持っていると私はrouter.jsに

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

    var newUser = new User(req.body); 

    newUser.save(function(err){ 
    if(err) res.send(err); 

    res.json(req.body); 
    }); 
}); 

を次のコードを使用して新しいユーザーを作成することができます)をすべてのユーザー操作に割り当てます。そのような何か:

var User = require('../dbmodels/userDBModel'); 

var _this = {}; 

_this.createUser = function(req, res) { 

    var newUser = new User(req.body); 

    newUser.save(function(err){ 
    if(err) res.send(err); 

    res.json(req.body); 
    }); 
}; 

module.exports = _this; 

してからだけではなく、router.jsでこれを呼び出す:

var crudUser = require('../crud/crudUser.js'); 

app.post('/signup', crudUser.createUser); 
を残念ながらcrudUser.js内のコードが呼び出されません。

これはまったく機能しますか?

おかげ

+0

書いたとおり、実際の関数名は 'crudUser'ではなく' createUser'です。これはタイプミスか、それが呼び出されない理由ですか? – Nik

+0

申し訳ありませんが、返信が早すぎました。あなたがコメントを投稿したのと同時にタイプミスを見つけて修正しました。 –

答えて

0

あなたは、このような変更をしようとし、その後にcruduser.js大文字crudUser.jsせずにファイル名を設定する必要があります。

var User = require('../dbmodels/userDBModel'); 

exports.createUser = function(req, res) { 

    var newUser = new User(req.body); 

    newUser.save(function(err){ 
     if(err) res.send(err); 

     res.json(req.body); 
    }); 
}; 
+0

それでは、なぜ、 '_this = {}; _this.function(){}; module.exports = _this' **は動作しませんが、 'exports.createUser = function(){}' **はしますか?それはまったく同じではありませんか?私の例では、最初にオブジェクトを宣言し、そこに関数を追加して関数を公開します。一方、例ではオブジェクトを一度に公開します。 –

関連する問題