如何将NodeJS应用程序cPanel从本地主机部署到服务器



我创建了一个简单的ExpressJS应用程序。它在localhost中运行良好。当我访问localhost:8000时,我看到静态文件(index.html、style.css和frontend.js(

我已经尝试使用cPanel在服务器中部署该应用程序。我已经成功地使用package.json安装了Node应用程序和依赖项。但当我访问该域时,我只看到一条消息(Node JS应用程序正在运行,Node版本为10.24.1(

如何使我的应用程序指向并显示静态文件夹(index.html(并运行应用程序?

我的应用程序架构:

  • 服务器.js
  • package.json
  • public/index.html
  • public/style.css
  • public/frontend.js

这是我的server.js启动文件:

// Setup empty JS object to act as endpoint for all routes
projectData = {};
// Require Express to run server and routes
const express = require('express');
// Start up an instance of app
const app = express();
/* Dependencies */
const bodyParser = require('body-parser');
/* Middleware*/
//Here we are configuring express to use body-parser as middle-ware.
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// Cors for cross origin allowance
const cors = require('cors');
app.use(cors());
// Initialize the main project folder
app.use(express.static('public'));

// Setup Server
const port = 8000;
const server = app.listen(port, function(){
console.log(`server running on localhost: ${port}`);
});

//POST Route to store data in the app endpoint, projectData object
app.post('/addData', addData);

function addData (req, res){
let data = req.body;
projectData = data;
console.log(projectData);
}
app.get('/getData', getData);
function getData(req, res) {
res.send(projectData);
}

这里的问题是您没有指向发送HTML文件的路由。否则,客户端将不得不将其指向文件的正确路径,如localhost:3000/index.html。您需要使用app.get从服务器发送

app.get("/", (req, res) => {
res.sendFile(__dirname + "path to the file");
});

问题是我在域的子文件夹中创建了应用程序。但当我创建了子域并在其中重新安装了应用程序时,该应用程序成功地指向了静态文件夹。

相关内容

  • 没有找到相关文章

最新更新