node.js - 如何在不使用 npm start 的情况下在 Cpanel 上启动套接字服务器 (server.js)

标签 node.js express socket.io angular6 cpanel

我尝试在 Angular-6 应用程序中使用 socket.io 和 socket.io-client。

为此,我在根目录中创建了一个 server.js 文件。 server.js文件如下:

const express = require('express');
const path = require('path');
const http = require('http');
const socketIO = require('socket.io');

const app = express();
const port = process.env.PORT || 3000;

app.use(express.static(path.join(__dirname, 'dist/myApp')));

app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/myApp/index.html'));
});

const server = http.createServer(app);

const io = socketIO(server);

io.on('connection', (socket) => {
console.log('New user connected');

socket.on('disconnect', () => {
    console.log('User disconnected');
});
});


server.listen(port, () => {
console.log(`Server running on port ${port}`);
});

在我的 package.json 文件中,我还将“start”:“ngserve”更改为“node server.js”

"scripts": {
    "start": "node server.js"       
  }

现在,在我的本地计算机上,我尝试了命令 ng build ,然后 npm start ,它工作得很好。它将在终端 enter image description here 上显示日志消息

现在我想在 Web 服务器(Cpanel)上托管 myApplication,在其中复制文件并从 dist 文件夹粘贴它,但如何在我的服务器上启动 server.js 文件

最佳答案

这取决于您的 Web 服务器是否只是提供静态文件(html、js 等)或实际运行 Linux 实例来运行您的 Node 服务器。

根据我的经验,大多数免费的(webhost00、cpanel)等不提供 Linux 实例,而只提供托管静态文件的 Web 服务器。

如果您想运行 Node 服务器,有很多免费选项。主要是AzureAWSHerokuGCP(谷歌云)Digital Ocean

我认为最快的免费是 Heroku

关于node.js - 如何在不使用 npm start 的情况下在 Cpanel 上启动套接字服务器 (server.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54841089/

相关文章:

javascript - 使用 Node.js/promises 按类型捕获异常

javascript - 将子对象的父对象添加到监听器会导致 Node.js 中的保留循环吗?

javascript - 无法从客户端发出套接字消息

javascript - 使用socket.io加入房间后如何获得其他用户的响应

javascript - 如何与多个客户端实时共享表单输入值?

node.js - Node.js 中的 Mongoose 与 ElasticSearch

javascript - promise 加入变革 promise 一切

javascript - 如何在不使用模板的情况下插入变量?

node.js - 使用 typescript 2 使用 sequelize 模型扩展 express 请求对象

node.js - SailsJS 使用一个 Controller 操作调用两个 Service 方法