如何在module.exports下调用不同的函数

时间:2017-12-08 05:57:41

标签: node.js

我有一个Helper.js文件。在这个文件中提到了使用Database做事的代码。

Helper.js FILE
module.exports.test1 = function(req, res){
    ABC.find({}).exec(function(err, post) {
        if(post.length == '0'){
            res.send({'No Data'});
        }else if(err){
            res.send({'Error'});
        }else {
            res.send({'data':post});
        }
    });
}

module.exports.test2 = function(req, res){
    ABC.find({}).exec(function(err, post) {
        if(post.length == '0'){
            res.send({'No Data'});
        }else if(err){
            res.send({'Error'});
        }else {
            res.send({'data':post});
        }
    });
}

现在在我的getter.js文件中我正在调用函数像这样它工作完全正常对我来说就像代码一样

Getter.js FILE
var helper = require('./helper');
router.get('/gettest1', helper.test1);
router.get('/gettest2', helper.test2);

现在我的问题是如何在Single Module.exports下创建函数??? 我也研究并试过这种代码,但得到错误,即“Route.get()需要回调函数,但得到一个[对象未定义]     在Route。(匿名函数)[as get]“ 我修改的Helper.js文件代码是

Helper.js FILE
    module.exports = {
    test1 = function(req, res){
        ABC.find({}).exec(function(err, post) {
            if(post.length == '0'){
                res.send({'No Data'});
            }else if(err){
                res.send({'Error'});
            }else {
                res.send({'data':post});
            }
        });
    },
    test2 = function(req, res){
        ABC.find({}).exec(function(err, post) {
            if(post.length == '0'){
                res.send({'No Data'});
            }else if(err){
                res.send({'Error'});
            }else {
                res.send({'data':post});
            }
        });
    }
    };

在我的getter.js文件中这样的代码

Getter.js FILE
var helper = require('./helper');
router.get('/gettest1', helper.test1());
router.get('/gettest2', helper.test2());

请分享做这种事情的最佳方法

1 个答案:

答案 0 :(得分:-1)

它完成了。主要问题是在getter.js文件中调用错误的格式,即 不是这样的

Getter.js FILE
var helper = require('./helper');
router.get('/gettest1', helper.test1());
router.get('/gettest2', helper.test2());

正确的方式是

Getter.js FILE
var helper = require('./helper');
router.get('/gettest1', helper.test1);//As it is an object not function
router.get('/gettest2', helper.test2);//As it is an object not function