首页 > 解决方案 > 无法使用 Node 库 Monk 访问 MongoDB 数据库,代码在 Localhost 上运行良好。真的很短,简洁的代码

问题描述

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

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

我已经尝试删除 || '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');
});

标签: node.jsmongodbexpressmonk

解决方案


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

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

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


推荐阅读