我已经通过 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 文件有什么问题?
非常感谢您在确定问题或建议方面的任何帮助。谢谢你。
服务器.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] 删除。
我来说两句