无法使用 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 甚至是最近的安装。使用正确的字符串,它工作正常。
所以我处理这个问题已经有一段时间了,考虑到很少的代码行,它真的很有弹性。我已经多次浏览文档并尝试了许多不同的组合和选项,但它就是行不通。在本地主机上一切正常,当部署到网络上时,应用程序工作正常,我可以成功访问显示 "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 甚至是最近的安装。使用正确的字符串,它工作正常。