nodeJS类导入

时间:2018-08-06 14:43:47

标签: node.js mongodb

嗨,有人可以解释一下我如何将MongoDB请求从构造函数导入到控制器吗?

要导出的类:

    class getCampus {
constructor (){
    data.collection('campuses').find({}).toArray(function (err, campus) {
            if (err) {
                res.send({ 'error': 'en error has occured'});
            } else {
                res.send(campus);
            }
        });
    }
}
module.exports = getCampus;

我要导入的位置

app.get('/campuses', (req, res) => {
    // data.collection('campuses').find({}).toArray(function (err, campus) {
    //     if (err) {
    //         res.send({ 'error': 'en error has occured'});
    //     } else {
    //         res.send(campus);
    //     }
    // });
});

1 个答案:

答案 0 :(得分:1)

如果说:

,您应该能够做到这一点。
 // getCampus.js
 class getCampus {
    // ... your code
 }
 module.exports = getCampus;

然后像这样使用它:

 const getCampus = require('getCampus'); // <-- Path and name of your file (you can ommit the .js)
 app.get('/campuses', async function(req, res) {
     const campus = await getCampus(); // Added async/await if getCampus is an asynchronous operation
     res.send(campus);
 }

但是,我建议将您的班级命名为您的域,就像这样:

 // Campus.js
 class Campus {
     constructor(var1, var2, etc) {
        // define whatever is needed to build a campus
     }
     getCampus(id) {
        // Now this is a getter to your campus
     }
     getCampuses() {
     }
 }

然后像这样调用它:

const Campus = require('Campus');
const campusObj = new Campus;
const arrCampus = campusObj.getCampuses();

通过这种方式,您的代码将更加整洁并易于维护。有很多方法可以做到这一点,我建议您看看ES6 Classes