在 AWS EC2 实例上找不到未定义 - MEAN 堆栈 Web 应用程序的属性长度



这可能是一个简单的修复,但我已经挖掘了一天半了,我不知道为什么这不起作用。前几天它在EC2服务器上工作,引发错误的文件根本没有更改。

完全相同的文件结构在窗口中有效,但是当我将文件迁移到 ec2 实例时不起作用。我正在从 package.json 文件中安装完全相同的依赖项。

我收到本机 mpromise 文件的弃用警告,但这在两个系统上都会发生。当我使用 node 运行种子文件(seed/engagementPhotoSeed.js)时,数据库会填充在 Windows 中,但不会在 linux 系统上填充。

然后我手动添加了MongoDB条目,当我运行npm start时,一切似乎都很好,但是当我连接到EC2的DNS以尝试在port:3000上查看网站时,它崩溃了。

这是我在 EC2 控制台中遇到的错误: 在此处输入图像描述

我知道 index.js 文件中的 docs 变量存在问题,我只是不知道如何解决它,db 连接似乎正在工作,我已经验证了条目是否在 linux 服务器上的数据库中,加上完全相同的代码在 Windows 中工作没有问题,昨天在 Linux 上也是如此。

下面的代码是 index.js 文件的内容,但如果您需要更多信息,整个项目都在 git 上。

https://github.com/colegil2012/PhotographyWebsiteMEAN

var express = require('express');
var router = express.Router();
var Photo = require('../models/photo.js');

router.get('/', function(req, res, next) {
Photo.find({ galleryHeader: true },function (err, docs) {
var photoChunks = [];
var chunkSize = 3;
for (var i = 0; i < docs.length; i += chunkSize) {
photoChunks.push(docs.slice(i, i + chunkSize));
}
res.render('photoSite/index', {title: 'Luminosity Photography', 
photos: photoChunks});
});
});

module.exports = router;

感谢任何帮助,伙计们

for (var i = 0; i < docs.length; i += chunkSize)中的文档似乎未定义,可能发生了未处理的错误。 我建议您也处理错误情况。 您可以包括一个 if-then-else 案例,如下所示:

router.get('/', function(req, res, next) {
Photo.find({ galleryHeader: true },function (err, docs) {
if(err){
//handle error case
} else {
var photoChunks = [];
var chunkSize = 3;
for (var i = 0; i < docs.length; i += chunkSize) {
photoChunks.push(docs.slice(i, i + chunkSize));
}
res.render('photoSite/index', {title: 'Luminosity Photography', 
photos: photoChunks});
}
});
});

最新更新