【发布时间】:2022-02-08 15:24:51
【问题描述】:
我一直在尝试使用 node.js 和 express 制作一个 web 应用程序,并决定使用 mongodb。 我正在使用 mongodb node.js 驱动程序版本:4.3.1 我已经尝试了所有可能的方法来连接 node.js 服务器和我的 mongodb atlas 数据库。
我的数据库也使用我的 db.js 文件中的以下代码连接:
const app = require('./app');
const MongoClient = require('mongodb').MongoClient
const Url = 'mongodb+srv://todoAppUser:<myOriginalPasswordHere>@cluster0.6lvjr.mongodb.net/myDatabase?retryWrites=true&w=majority';
MongoClient.connect(Url, function (err, client) {
if (err) throw err;
var db = client.db('myDatabase');
db.collection('products').findOne({}, function (findErr, result) {
if (findErr) throw findErr;
console.log(result.name);
client.close();
});
});
上面的代码工作正常,并且也给出了输出。 但我想使用需要导出连接的 MVC(模型-视图-控制器)框架。
我在上面的代码中做了如下改动:
MongoClient.connect(Url, function (err, client) {
if (err) throw err;
var db = client.db('myDatabase');
db.collection('products').findOne({}, function (findErr, result) {
if (findErr) throw findErr;
console.log(result.name);
module.exports = db
client.close();
});
});
更改后,当我尝试从我的任何其他文件访问我的连接 (const productCollection = require('./db').collection("product");) 时,它给了我以下错误:
const productCollection = require('./db').collection("product");
^
TypeError: require(...).collection is not a function
at Object.<anonymous> (D:\Kush- Complete Data\exp-projects\nodeApp\productController.js:1:43)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12)
at Module.require (internal/modules/cjs/loader.js:961:19)
at require (internal/modules/cjs/helpers.js:92:18)
at Object.<anonymous> (D:\Kush- Complete Data\exp-projects\nodeApp\router.js:3:27)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
[nodemon] app crashed - waiting for file changes before starting...
请任何人指导我并指出可能的出路。
谢谢, 库什
【问题讨论】:
标签: javascript node.js mongodb express connection