嗨,有人可以解释一下我如何将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);
// }
// });
});
答案 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。