带有 cPanel 的生产 Angular/nodejs 应用程序。Node.js 应用程序错误?

纳斯94

我已经通过 cPanel 部署了一个 Angular 应用程序(使用命令 'ng build --prod="true"' 编译)并且它目前处于活动状态:https ://nathankeogh.com

它还使用在 cPanel 上运行的 node.js 后端。应用程序启动文件是“server.js”。

我已经从 MySQL 数据库中导入了数据以及 cPanel 上的数据等。(使用命令“sed -e 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' -i myfilename.sql”来获得未知的排序错误。)

我的 prod.envrionment.ts 文件当前将 ApiURL 指向“httpS://nathankeogh.com”。

我已经更新了 cPanel 上的 node.js 应用程序,其中包含 cPanel 上数据库的名称和凭据。

访问网站时,它会按预期加载登录页面,但如您所见,在 chrome 的控制台中出现内部服务器错误(未知)并且数据不会发布/获取:错误

开发版本按预期工作。

进一步开发:当鼠标悬停在 chrome 控制台中的“错误”文本上时,会显示完整的错误输出:

在此处输入图像描述

“无法启动 Web 应用程序”。我相信它是一个 cPanel 节点应用程序错误:在此处输入图像描述

在此之后,cPanel 错误表明 server.js 文件第 7 行存在问题?还是 22?("app.use('/accounts', require('./accounts/accounts.controller'));")谁能确定导致问题的 server.js 文件有什么问题?

非常感谢您在确定问题或建议方面的任何帮助。谢谢你。

node.js cPanel 配置:在此处输入图像描述

服务器.js:

require('rootpath')();
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const cors = require('cors');
const errorHandler = require('_middleware/error-handler');

const multer = require('multer')
//const upload = multer({ dest: 'images/' })
var fileExtension = require('file-extension')

//app.use(express.static(__dirname+'/uploaded-files'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cookieParser());

// allow cors requests from any origin and with credentials
app.use(cors({ origin: (origin, callback) => callback(null, true), credentials: true }));

// api routes
app.use('/accounts', require('./accounts/accounts.controller'));
app.use('/lab-swaps', require('./lab-swaps/lab-swaps.controller'));

// swagger docs route
app.use('/api-docs', require('_helpers/swagger'));

// global error handler
app.use(errorHandler);

// start server
const port = process.env.NODE_ENV === 'production' ? (process.env.PORT || 80) : 4000;
app.listen(port, () => console.log('Server listening on port ' + port));

// Basic Get Route
app.get('/', function (req, res) {
    res.json({ message: 'Server Started!' });
});

var storage = multer.diskStorage({

    // Setting directory on disk to save uploaded files
    destination: function (req, file, cb) {
        cb(null, 'uploaded-files')
    },

    // Setting name of file saved
    filename: function (req, file, cb) {
        cb(null, file.fieldname + '-' + Date.now() + '.' + fileExtension(file.originalname))
    }
})

var upload = multer({
    storage: storage,
    limits: {
        // Setting Image Size Limit to 2MBs
        fileSize: 2000000
    },
    fileFilter(req, file, cb) {
        if (!file.originalname.match(/\.(jpg|jpeg|png)$/)) {
            //Error 
            cb(new Error('Please upload JPG and PNG images only!'))
        }
        //Success 
        cb(undefined, true)
    }
})

app.post('/uploadedImages', upload.single('uploadedImage'), (req, res, next) => {
    const file = req.file
    console.log(req);
    if (!file) {
        const error = new Error('Please upload a file')
        error.httpStatusCode = 400
        return next(error)
    }
    res.status(200).send({
        statusCode: 200,
        status: 'success',
        uploadedFile: file
    })

}, (error, req, res, next) => {
    res.status(400).send({
        error: error.message
    })
})
帕特里克·加尔文

rootpath库似乎没有得到很好的维护,因此可能会引起问题。

删除它并改用相对路径。

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const cors = require('cors');
const errorHandler = require('./_middleware/error-handler');
 
const multer = require('multer');

相对路径更传统,因此您将避免让未来的开发人员在您的代码上工作时感到困惑,并且您将避免与您的编辑器相关的潜在问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NodeJS + Cpanel错误:未收到来自应用程序的响应(Node js,Express,Mongoose)

带有node.js的Webworkers表达应用程序

带有Azure Web应用程序服务的Node.js中的错误

在 node.js 中设置应用程序生产和开发模式

将带有node-jdbc模块的Node.js应用程序部署到Bluemix

带有Spring Cloud Netflix Eureka的Node.js客户端应用程序

带有 firebase auth 和 node.js/mongodb 的 Angular 应用程序

在生产中部署ReactJS应用程序(带有nodeJS后端)

提交带有Apple开发证书的应用程序以获取推送通知或生产证书?

带有 bootsrap 的 rails 应用程序中的不同 jQuery/JS 错误

有没有办法判断Ember.js应用程序在哪个环境(开发/生产)中运行?

Node.js Web 应用程序 => 错误:EACCES:权限被拒绝,打开“/opt/cpanel/ea-ruby27/root/usr/share/passenger/helper-scripts/error.log”

cPanel Node.js应用程序无法连接到MongoDB Atlas集群,但可以在Heroku上运行

无法在heroku上托管node.js应用程序。正在显示应用程序错误

如何将Angular Universal应用程序部署到Node.js生产服务器?

使用node.js,express和PM2在生产应用程序中进行Console.log

next.js 应用程序在本地运行良好,但在生产中返回 500 内部服务器错误

Docker Dynamodb错误:带有dynamodb的Node.js应用程序无法在docker中工作,但如果没有它,则可以工作

带有vhost的Node.js / Express与Sails.js框架应用程序发生冲突

Vue.js Web应用程序使用带有mysql-ssh的Node.js连接

保持Node JS应用程序运行

如何分发Node JS应用程序?

Express Node.js应用程序崩溃时,nodemon和babel没有错误消息

res.render() 不渲染 ejs 文件,没有抛出错误 node.js 应用程序

闪亮的应用程序投入生产

Windows SDK for生产版本的应用程序

Golang生产Web应用程序配置

Dockerize PHP生产应用程序

VS更新后,带有Node.js的ASP.NET Core 2.2应用程序中断