无法使用节点库Monk访问MongoDB数据库,代码在本地主机上工作正常。非常简短、简洁的代码



所以我已经处理这个问题一段时间了,考虑到代码的小行数,它真的很有弹性。我已经浏览了好几次文档,尝试了许多不同的构图和选项,但都不起作用。当在localhost上时,一切都很好,当部署到web上时,应用程序可以工作,我可以成功访问。/显示"Camisite"的方向,但在尝试访问/发布时会超时。我只知道这些,如果有人能提供一些关于如何获得更多错误信息的建议,那将是受欢迎的。只是为了测试,我已经将连接字符串直接放在代码上,否则它就属于Now机密。

这是代码,正如我所说,它非常简洁。我删掉了请求后的部分,认为没有必要。

我已经尝试删除连接字符串上的|| '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。有了正确的绳子,它工作得很好。

相关内容

最新更新