mongoose 连接到mongoDB时'ERR_MONTH_NOT_FOUND'出错

relj7zay  于 9个月前  发布在  Go
关注(0)|答案(2)|浏览(97)

我是JavaScript的新手,目前正在使用node和mongoose学习mongoDB。当我尝试连接db时,我得到了这个错误:
您是否打算在finalizeResolution(node:internal/modules/esm/resolve:255:11)at moduleResolve(node:internal/modules/esm/resolve:908:10)at defaultResolve(node:internal/modules/esm/resolve:1121:11)at ModuleLoader.defaultResolve(node:internal/modules/esm/loader:396:12)at ModuleLoader.resolve(node:internal/modules/esm/loader:365:25)
在ModuleLoader.getModuleJob(node:internal/modules/esm/loader:240:38)在ModuleWrap.(node:internal/modules/esm/module_job:85:39)在link(node:internal/modules/esm/module_job:84:36){ code:'ERR_MODBLE_NOT_FOUND',
请让我知道我做错了什么,以及如何在applyc & await中纠正它?
1x个月

import mongoose from 'mongoose';

mongoose.connect(process.env.MONGO_URI, {
    useNewUrlParser: true, useUnifiedTopology: true
});

const connection = mongoose.connection;

connection.on('error', () => {
    console.log('Error in connection to Database');
});

connection.on('connected', () => {
    console.log('Connected to Database')
});

module.exports = mongoose;

字符串
index.js

import express from 'express';
const app = express();
require('dotenv').config();
import mongoose from './config/dbConfig';
const port = process.env.PORT || 3001;

app.listen(port, () => {
    console.log(`Server running on localhost:${port}`)
});

qzwqbdag

qzwqbdag1#

你的代码被过度工程化了,连接mongoose是一个相当简单的过程。你似乎使用了ES Module语法,所以你不能真正混合require()import在一起,所以我将提供一个使用ES Module语法的例子。请注意,将来你需要为你导入的你的模块提供一个文件扩展名,例如,您需要包含.js文件扩展名。

import express from 'express';
import mongoose from 'mongoose';
import 'dotenv/config';
const app = express();
const port = process.env.PORT || 3001;
mongoose.connect(process.env.MONGO_URI).then(() => {
   console.log('Connected to MongoDB');
})

app.listen(port, () => {
    console.log(`Server running on localhost:${port}`)
});

字符串

doinxwow

doinxwow2#

你应该创建一个对象mongoose connect并在dblog. js中返回它。在index.js中,你使用这个对象来启动应用程序并连接数据库。示例:

dbconfig.js

const mongoose = require('mongoose');
const logger = require('./logger');

function makeNewConnection(uri) {
    const db = mongoose.createConnection(uri, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
    });

    emitDbEvent(db);
    return db;
}

function emitDbEvent(connection) {
    connection.on('error', function (error) {
        logger.info(`database:: connection ${this.name} ${JSON.stringify(error)}`);
        connection.close().catch(() => console.log(`MongoDB :: failed to close connection ${this.name}`));
    });

    connection.on('connected', function () {
        logger.info(`database:: connected ${this.name}`);
    });

    connection.on('disconnected', function () {
        logger.info(`database:: disconnected ${this.name}`);
    });
}

const connectMongo = makeNewConnection(process.env.MONGO_URI);

module.exports = {
    connectMongo,
};

字符串

index.js

import express from 'express';
const app = express();
require('dotenv').config();
const { connectMongo } = require('./dbconfig');
const port = process.env.PORT || 3001;

await connectMongo();

app.listen(port, () => {
    console.log(`Server running on localhost:${port}`)
});

相关问题