无法使用 Node 库 Monk 访问 MongoDB 数据库,代码在本地主机上运行良好。真正简短的代码

Can't access MongoDB database with Node library Monk, code works fine on Localhost. Really short, concise code

所以我处理这个问题已经有一段时间了,考虑到很少的代码行,它真的很有弹性。我已经多次浏览文档并尝试了许多不同的组合和选项,但它就是行不通。在本地主机上一切正常,当部署到网络上时,应用程序工作正常,我可以成功访问显示 "Camisite " 的 ./ 方向,但在尝试访问 /posts 时超时。这就是我所知道的,如果有人可以提供一些关于如何获取有关错误的更多信息的建议,那将是受欢迎的。只是为了测试,我将连接字符串直接放在代码上,否则它现在是秘密的。

所以这是代码,正如我所说,它非常简洁。我认为没有必要删除 post 请求部分。

我已经尝试删除连接字符串中的 || 'localhost/posts' 部分,只保留字符串或秘密中的字符串。

const express = require('express');
const cors = require('cors');
const monk = require('monk');
const Filter = require('bad-words');
const rateLimit = require('express-rate-limit');

const filter = new Filter();
const app = express();
const db = monk('mongodb+srv://myuserexample:mypassexample@cluster0-qm9z0.mongodb.net/test?retryWrites=true&w=majority' || 'localhost/posts');
const posts = db.get('posts');
app.enable('trust proxy');
app.use(cors());
app.use(express.json());

app.get('/', (req, res) => {
    res.json({
        message: 'Camisite! '
    });
});

app.get('/posts', (req, res) => {
    posts
        .find()
        .then(posts => {
            res.json(posts);
        });
});

const port = process.env.PORT || 3000;
app.listen(port, () => {
    console.log('server started');
});

首先,你需要在你有.then的地方添加.catch,因为优雅的错误处理可以帮助你应对这样的情况。使用 console.error() 将您的错误打印到控制台,并制作日志文件,至少 运行 您的应用程序是这样的:

node app.js >> stdout.log 2>>stderr.log

这将为您提供有关所发生事件的更多信息

好的,我解决了它,我的字符串不正确,因为它适用于 Node 版本 3.0 或更高版本。我有 2.12 甚至是最近的安装。使用正确的字符串,它工作正常。