【发布时间】:2021-08-29 17:26:10
【问题描述】:
我有一个 app.js 连接到一个 mongodb 数据库并用 express 显示它。我的 app.js 开始变得很长。所以我正在尝试做“模块化设计”。我需要做一个“timer.js”,它会在我的 mongodb 中用计时器做一些事情。
我想从“checking.js”导入这个函数,但是这个文件需要 mongodb,来自 DOTENV 等的一些常量,所以我需要它们之间的导入/导出关系。怎么办?
App.js(主文件)
require('dotenv').config()
const POWER = process.env.POWER;
var mongoDb = require('mongodb');
var mongoClient = mongoDb.MongoClient;
const serverUrl = process.env.ENV_SERVEUR_MONGO_URL;
const useDB = process.env.ENV_MONGO_DATABASE;
app.get('/top', function (req, res) {
var resultArray = [];
mongoClient.connect(serverUrl, function (err, client) {
var db = client.db(useDB);
if (err) throw err;
var cursor = db.collection('top').find().sort({ _id: -1 });
cursor.forEach(function (doc, err) {
resultArray.push(doc);
}, function () {
client.close();
res.render('pages/top', { items: resultArray })
});
});
});
var checking = require('./checking')
Checking.js
function checkingdatabase() {
// ERROR require mongodb, variable undefined etc.
mongoClient.connect(serverUrl, function (err, client) {
var db = client.db(useDB);
if (err) throw err;
//do stuff
});
}
setInterval(checkingActiveOffer, 5000);
module.exports = Object.assign({ checkingdatabase })```
【问题讨论】:
-
您必须在checking.js中编写所需的导入语句,以便它可以正常工作并编译而不会出现任何错误。
标签: javascript node.js mongodb import module