centos直接部署express

centos直接部署express

以下是在CentOS上部署Express应用程序的一般步骤:

1.安装Node.js

在CentOS系统上安装Node.js。可以使用以下命令安装Node.js:

sudo yum install nodejs

2.安装npm

安装完Node.js后,还需要安装npm(Node.js包管理器)。可以使用以下命令安装npm:

sudo yum install npm

3.创建Express应用程序

在任何位置创建一个名为my-express-app的Express应用程序,例如:

mkdir my-express-app //项目名称
cd my-express-app
npm init //项目初始化
npm install express --save

4.启动Express应用程序

注意下图的红色箭头,不加入则为tcp6模式

我估计没做tcp6的域名映射,所以只能用ip访问,加上直接则为tcp4,可以直接用域名访问

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CmANdubU-1686902279296)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230616154734675.png)]

这里我用的是3000端口,这是使用了0.0.0.0之后的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BKuJakWS-1686902279298)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230616154927377.png)]

在my-express-app目录中创建一个名为index.js的文件,并添加以下内容:

这里可以用指令直接添加,或者使用Xftp 7自己创建

指令实现:使用vim直接进行创建写入 进入之后按i键插入,然后直接shift+insert直接插入数据就可以,完成之后直接输入:wq保存退出

vim index.js

复制黏贴、保存退出

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, '0.0.0.0',() => {
  console.log(`Example app listening at http://localhost:${port}`)
})

这个文件创建了一个简单的Express应用程序,监听3000端口,并打印“Hello World!”消息。

  1. 启动Express应用程序

执行以下命令以启动Express应用程序:

node index.js

如果一切正常,你应该看到类似以下的输出:

Example app listening at http://localhost:3000

然后,可以在浏览器中访问http://localhost:3000来验证应用程序是否已经正确运行。

在这里插入图片描述

5.使用PM2管理应用程序

可以使用PM2来管理和监控应用程序。PM2是一个进程管理工具,可以自动将应用程序作为守护进程运行,并提供诸如日志记录、自动重启等功能。

要安装PM2,请使用以下命令:

sudo npm install pm2 -g

然后,可以使用以下命令将应用程序添加到PM2中:

pm2 start index.js --name my-express-app

其中–name选项指定应用程序的名称。

现在,应用程序已经以守护进程的方式运行,并由PM2进行管理。可以使用以下命令来查看应用程序的状态和日志:

pm2 status
pm2 logs

以上是在CentOS上部署Express应用程序的一般步骤。在实际操作中,可能会有各种不同的环境和需求,需要根据具体情况进行调整和优化。

6.pm2的作用

PM2是一个进程管理工具,可帮助您简化Node.js应用程序的部署和管理。它提供了以下功能:

  1. 进程守护 - PM2可以将Node.js应用程序设置为守护进程,以便在意外崩溃时自动重新启动。
  2. 负载均衡 - PM2可以使用多个子进程运行同一应用程序,并实现负载均衡来提高性能和可靠性。
  3. 日志记录 - PM2可以捕获和记录应用程序的输出日志,并支持各种日志格式和目标(例如文件、数据库等)。
  4. 监控和警报 - PM2可以监视应用程序的资源使用情况和性能指标,并在达到特定阈值时发送警报通知。
  5. 部署工具 - PM2提供了内置的部署工具,可以轻松地将应用程序部署到云端或其他服务器上。

总之,PM2可以大大简化Node.js应用程序的管理和部署,使开发人员能够专注于应用程序本身,而不是底层基础设施。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/30550.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫被封ip解决方案

在使用 Python 程序进行网络爬虫开发时,可能因以下原因导致被封 IP 或封禁爬虫程序: 1、频繁访问网站 爬虫程序可能会在很短的时间内访问网站很多次,从而对目标网站造成较大的负担和压力,这种行为容易引起目标网站的注意并被封禁…

数据结构-队列

数据结构之队列 队列的概念顺序队列循环队列 顺序循环队列的ADT定义1、简单结构体定义2、初始化3、队列的清空4、计算队列的长度5、判断队列是否为空6、插入新的元素7、元素的删除8、遍历输出队列内的所有元素 链队列的ADT定义1、链队列简单结构体定义2、初始化链队列3、判断链…

神秘的临时对象

下面的程序输出什么?为什么? 程序意图: 在 Test() 中以 0 作为参数调用 Test(int i) 将成员变量 mi 的初始值设置为 0 运行结果: 成员变量 mi 的值为随机值 构造函数是一个特殊的函数 是否可以直接调用? 是否可以…

LVS+KeepAlived高可用负载均衡集群

LVSKeepAlived高可用负载均衡集群 1. 高可用群集的相关知识1.普通群集2.高可用群集(HA)3.Keepalived及其工作原理4.Keepalived体系主要模块及其作用5.健康检查方式(学名:探针) 二、脑裂的形成和解决1.产生脑裂的常见原因及解决方法2.脑裂预防…

谈找工作线上途径

谈找工作 目录概述需求: 设计思路实现思路分析1.51job2.拉勾网 猎聘网站智联招聘网站后记 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait…

新能源汽车保养vr仿真教学软件为职业培训带来新的思路和方法

电动车电池更换VR虚拟体验是一种利用VR虚拟现实技术实现对电动车电池更换进行模拟仿真演示和实操训练的虚拟仿真实验教学课件,相比传统教学模式,有效提高学生的实践能力和技能水平。 通过VR技术模拟现场,使培训人员可以身临其境滴观摩操作过程…

在 PyTorch 中实现可解释的神经网络模型

动动发财的小手,点个赞吧! 目的 深度学习系统缺乏可解释性对建立人类信任构成了重大挑战。这些模型的复杂性使人类几乎不可能理解其决策背后的根本原因。 ❝ 深度学习系统缺乏可解释性阻碍了人类的信任。 ❞ 为了解决这个问题,研究人员一直在…

c++Qt Creator调用 python 完整版 + 解决bug过程

文章目录 创建项目配置python环境导入Python库其他坑点Python.h 头文件报错ModuleNotFoundError: No module named encodings’ 完美解决找不到python文件 成功! 文章首发于我的个人博客:欢迎大佬们来逛逛 创建项目 选择创建 qmake 项目: …

【C++】vector的模拟实现

目录 1.vector的结构2.构造函数2.1 无参构造2.2 以迭代器区间作为参数的构造函数2.3 构造n个value值 3.拷贝构造3.1 传统写法3.2 现代写法 4.赋值重载5.迭代器失效问题5.1 reserve和resize5.2 insert 5.3 erase4. 整体代码(包含迭代器、析构函数等) 1.ve…

springboot实验室管理系统-计算机毕设 附源码86757

springboot实验室管理系统 摘 要 验室管理系统是将实验室的分析仪器通过计算机网络连起来,采用科学的管理思想和先进的数据库技术,实现以实验室为核心的整体环境的全方位管理。它集用户管理,实验室信息管理,实验室预约管理&#x…

Java设计模式——策略模式

1. 策略模式简介 策略模式: 策略模式是一种行为型模式, 它将对象和行为分开, 将行为定义为一个行为接口和具体行为的实现 策略模式最大的特点是行为的变化, 行为之间可以相互替换 每个if判断都可以理解为一个策略. 本模式是的算法可独立于使用它的用户而变化 2. 模式结构 策略…

Flink 学习七 Flink 状态(flink state)

Flink 学习七 Flink 状态(flink state) 1.状态简介 流式计算逻辑中,比如sum,max; 需要记录和后面计算使用到一些历史的累计数据, 状态就是:用户在程序逻辑中用于记录信息的变量 在Flink 中 ,状态state 不仅仅是要记录状态;在程序运行中如果失败,是需要重新恢复,所以这个状态…

Java实训第七天——2023.6.13

文章目录 一、用Visual Studio Code写一个计算器二、同一个js被多个html引用三、js操作css四、DOM对象属性的操作案例五、js解析json 一、用Visual Studio Code写一个计算器 功能&#xff1a;实现简单的加减乘除 <!DOCTYPE html> <html lang"en"> <…

LeetCode 2481. 分割圆的最少切割次数

【LetMeFly】2481.分割圆的最少切割次数 力扣题目链接&#xff1a;https://leetcode.cn/problems/minimum-cuts-to-divide-a-circle/ 圆内一个 有效切割 &#xff0c;符合以下二者之一&#xff1a; 该切割是两个端点在圆上的线段&#xff0c;且该线段经过圆心。该切割是一端…

mapbox-gl 点位编辑功能

文章目录 前言方式一&#xff1a;借助 Marker添加自定义icon添加POI图层&#xff0c;绑定对应事件基于Marker交互创建自定义Marker编辑 / 创建POI 方式二&#xff1a;采用 mapbox-gl-draw 插件总结 前言 矢量在线编辑是gis常用的编辑功能&#xff0c;兴趣点&#xff08;POI&am…

kettle开发-Day38-超好用自定义数据处理组件

目录 前言&#xff1a; 一、半斤八两&#xff0c;都不太行 1、表输入&#xff0c;速度快&#xff0c;但不稳妥 2、稳的一批&#xff0c;但是慢的像蜗牛 二、各诉衷肠&#xff0c;合作共赢 1、表输入&#xff0c;高效数据插入 2、插入更新&#xff0c;一个都不能少 三、表输…

express的使用(四) nodejs转发表单到后台

原文链接 搬砖的林小白-express的使用(四) 个人博客地址&#xff0c;求关注&#xff0c;也希望大家在里面批评我的不足之处 看前提示 本篇所讲述的内容是node端转发前端发送过来的表单到第三方中&#xff0c;应用的场景有很多&#xff0c;如我们经常做的将文件存储到七牛云或…

Scala学习笔记

累了&#xff0c;基础配置不想写了&#xff0c;直接抄了→Scala的环境搭建 这里需要注意的是&#xff0c;创建新项目时&#xff0c;不要用默认的Class类&#xff0c;用Object&#xff0c;原因看→scala中的object为什么可以直接运行 一、Scala简介 1.1 图解Scala和Java的关系 1…

大数据测试基本知识

常用大数据框架结构 1.大数据测试常用到的软件工具 工具推荐&#xff0c;对于测试数据构造工具有&#xff1a;Datafaker、DbSchema、Online test data generator等&#xff1b;ETL测试工具有&#xff1a;RightData、QuerySurge等&#xff1b;数据质量检查工具&#xff1a;great…

MySQL-SQL存储过程/触发器详解(上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…