MongoDB-JavaScript:Web应用程序停止工作是因为MongoDB已满?
我有一个非常小的例子网站作为测试。我正在记录船只的纬度/经度和其他信息,并将它们连续发送到我的MongoDB-JavaScript:Web应用程序停止工作是因为MongoDB已满?,javascript,mongodb,heroku,Javascript,Mongodb,Heroku,我有一个非常小的例子网站作为测试。我正在记录船只的纬度/经度和其他信息,并将它们连续发送到我的MongoDB,正如您在下面看到的,它现在似乎已经满了。它还说:显示2984034中的文档1-20,并且有一个最大限制(由我设置),如图所示,已经达到: 我收到的错误是来自Heroku平台的5XX错误,这意味着请求失败,现在我想知道这是否是因为我的外部数据库MongoDB基本上已满? 那会发生吗 仔细调试后,我的应用程序在以下API路径上失败: app.route("/update").post(s
MongoDB
,正如您在下面看到的,它现在似乎已经满了。它还说:显示2984034中的文档1-20
,并且有一个最大限制(由我设置),如图所示,已经达到:
我收到的错误是来自Heroku
平台的5XX
错误,这意味着请求失败
,现在我想知道这是否是因为我的外部数据库MongoDB
基本上已满?
那会发生吗
仔细调试后,我的应用程序在以下API路径上失败:
app.route("/update").post(scowlogController.createNewScowLog);
下面是Heroku日志的摘录。此外,如果这可能是有用的,是一个更精确的打印屏幕下面的初始帖子:
在代码scowlog_controller.js的一个小摘录下面,您将看到我编写的一些部分输出一个警告,如返回res.status(500).send(err)代码>以防发生什么事情
但是,这会不会让整个网站停止工作??:
exports.listAllScowLogs = (req, res) => {
ScowLog.find({}, (err, task) => {
if (err) {
return res.status(500).send(err);
}
res.status(200).json(task);
});
};
exports.createNewScowLog = (req, res) => {
let newScowLog = new ScowLog(req.body);
let scow = scowController.registerScowById(newScowLog.scow);
var ip = req.headers["x-forwarded-for"];
if (ip){
var list = ip.split(",");
ip = list[list.length-1];
} else {
ip = req.connection.remoteAddress;
}
newScowLog.ip = ip;
newScowLog.save((err, task) => {
if (err) {
return res.status(500).send(err);
}
res.status(201).json({"Status":"Success"});
});
};
function chunk (arr, len) {
var chunks = [],
i = 0,
n = arr.length;
while (i < n) {
chunks.push(arr.slice(i, i += len));
}
return chunks;
}
exports.createNewScowLogs = (req, res) => {
var ip = req.headers["x-forwarded-for"];
if (ip){
var list = ip.split(",");
ip = list[list.length-1];
} else {
ip = req.connection.remoteAddress;
}
req.body.forEach((scw) => {
scw.ip = ip;
});
let newlogs = chunk(req.body, 400);
let promises = [];
newlogs.forEach((logs) => {
promises.push(new Promise((resolve, reject) => {
ScowLog.insertMany(logs, (err) => {
if(err) {
return reject(err);
}
else {
return resolve("Success");
}
});
}));
});
Promise.all(promises).then((result) => {
return res.status(201).json({"Status":"Success"});
}).catch((err) => {
return res.status(500).send(err);
});
};
exports.readScowLog = (req, res) => {
ScowLog.findById(req.params.scowid, (err, task) => {
if (err) {
return res.status(500).send(err);
}
res.status(200).json(task);
});
};
exports.deleteScowLogsOlderThanOneWeek = (req, res) => {
var lastweek = moment().add(-7, 'days');
ScowLog.remove({ created: { "$lt": lastweek } }, (err, task) => {
if (err) {
return res.status(500).send(err);
}
res.status(200).json(task);
});
};
exports.listAllScowLogs=(请求、回复)=>{
ScowLog.find({},(err,task)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(200).json(任务);
});
};
exports.createNewScowLog=(请求、回复)=>{
让newScowLog=newScowLog(请求主体);
设scow=scowController.registerScowById(newScowLog.scow);
var ip=请求头[“x-转发-用于”];
如果(ip){
var list=ip.split(“,”);
ip=列表[列表长度-1];
}否则{
ip=请求连接远程地址;
}
newScowLog.ip=ip;
newScowLog.save((错误,任务)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(201).json({“status”:“Success”});
});
};
功能块(arr、len){
var chunks=[],
i=0,
n=阵列长度;
而(i{
var ip=请求头[“x-转发-用于”];
如果(ip){
var list=ip.split(“,”);
ip=列表[列表长度-1];
}否则{
ip=请求连接远程地址;
}
请求主体forEach((scw)=>{
scw.ip=ip;
});
让newlogs=chunk(req.body,400);
让承诺=[];
newlogs.forEach((日志)=>{
承诺。推送(新承诺((解决、拒绝)=>{
ScowLog.insertMany(日志,(错误)=>{
如果(错误){
退货拒绝(err);
}
否则{
返回决心(“成功”);
}
});
}));
});
承诺。所有(承诺)。然后((结果)=>{
返回res.status(201.json)({“status”:“Success”});
}).catch((错误)=>{
返回res.status(500)。发送(err);
});
};
exports.readScowLog=(请求、回复)=>{
ScowLog.findById(req.params.scowid,(err,task)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(200).json(任务);
});
};
exports.deleteScowLogsOlderThanOneWeek=(请求、回复)=>{
var lastweek=moment().add(-7,“天”);
remove({created:{“$lt”:lastweek}},(err,task)=>{
如果(错误){
返回res.status(500)。发送(err);
}
res.status(200).json(任务);
});
};
到目前为止,我正在做的是尽可能多地调试,我希望将问题重新限定在我上面报告的打印屏幕和评论上
发生了什么事?这就是问题所在吗?因此,解决办法就是擦除所有记录并清除所有内容
感谢您提供解决此问题的建议。如果您认为数据库可能是问题所在,请检查数据库logs@Joe,感谢您阅读问题,我如何检查MongoDB上的日志?我也一直在试图了解是否有一个自由限制,超过这个限制一切都停止工作?@Joe,如果这很重要,我想知道这是否是问题所在?因此我想知道heroku是否会因此而拒绝请求?不确定heroku如何管理mongodb,如果他们对您的存储大小设置了上限,这可能是问题所在如果你认为数据库可能是问题所在,请检查数据库logs@Joe,感谢您阅读问题,我如何检查MongoDB上的日志?我也一直在试图了解是否有一个自由限制,超过这个限制一切都停止工作?@Joe,如果这很重要,我想知道这是否是问题所在?因此我想知道heroku是否会因此而拒绝请求?不确定heroku如何管理mongodb,如果他们对您的存储大小设置了上限,可能就是这样