centos直接部署express

news2024/12/21 22:30:27

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应用程序的管理和部署,使开发人员能够专注于应用程序本身,而不是底层基础设施。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库原理与应用第7章作业

数据库原理与应用第7章作业 一. 单选题(共10题,40分)二. 填空题(共3题,15分)三. 简答题(共1题,15分)四. 论述题(共2题,30分) 一. 单选…

测试“背锅侠”?软件测试人究竟背了多少锅?我不再背锅...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 实际上&#xff0…

多线程并发的一些常见的使用规范

目录 1. 多线程并发使用规范 1.1 指定线程名称 2. 尽量使用线程池 3.不允许使用Executors 4. 正确停止线程 5. 编写可停止的Runnable 6 . Runnable中必须捕获一切异常 7. 可考虑使用ThreadLocal 8. 缩短锁 9. 选择分离锁,分散锁甚至无锁的数据结构 10. 推…

【C/C++】标准库相关题型(一)

文章目录 1. vector底层实现原理1.1 类构成1.2 构造函数1.3 插入元素1.4 删除元素1.5 读取元素1.6 修改元素1.7 释放空间 2. vector内存增长机制2.1 特点2.2 内存增长特性2.3 内存增长过程2.4 内存清理2.5 注意事项 3. vector中reserve和resize的区别3.1 共同点3.2 区别3.3 应用…

在 ZBrush 和 Maya 中创建 Chris Hemsworth 的 3D 肖像

今天瑞云渲染小编给大家带来一篇Marius Prsel分享了 Chris Hemsworth 项目背后的工作过程,详细介绍了角色的头部、面部和头发是如何制作的,并解释了如何在 Arnold 中完成渲染,一起来看看吧! 简介 我的名字是Marius Prsel&#xf…

7个理由:从Java8升级到Java17【翻译】

原文地址: 7 Reasons to Migrate from Java 8 to Java 17 释放吧,Java的全部力量。[手动狗头] 简介 从Java8到Java18,Java已经经历了漫长的发展历程(Java20非长期维护版本)。同时也是从Java 8开始,Java生态系统发生…

【LeetCode热题100】打卡第23天:最小覆盖子集

文章目录 【LeetCode热题100】打卡第23天:最小覆盖&子集⛅前言 最小覆盖🔒题目🔑题解 子集🔒题目🔑题解 【LeetCode热题100】打卡第23天:最小覆盖&子集 ⛅前言 大家好,我是知识汲取者&…

三种方法将Word文档转换为PDF文件格式

如何将Word文档转换为PDF文件格式呢?大家在传输文件时,很多人喜欢使用PDF文件格式,因为它非常稳定,不会出现格式混乱的问题。但有些人可能不知道如何进行转换,今天我将介绍三种转换方法,让我们一起来学习一…

从0开始,精通Go语言Rest微服务架构和开发

说在前面 现在拿到offer超级难,甚至连面试电话,一个都搞不到。 尼恩的技术社区中(50),很多小伙伴凭借 “左手云原生右手大数据”的绝活,拿到了offer,并且是非常优质的offer,据说年…

Pytest教程__Hook钩子函数总结(14)

前言 pytest 的钩子函数有很多,通过钩子函数的学习可以了解到pytest在执行用例的每个阶段做什么事情,也方便后续对pytest二次开发学习。 详细文档可以查看pytest官方文档API Reference — pytest documentation 钩子函数总结 第一部分:set…

5、DuiLib组件结构的初探

文章目录 1、DuiLib组件结构的初探 1、DuiLib组件结构的初探 DuiLib 整体的实现不仅仅有控件,还有窗口消息、XML处理等模块,官方曾经过出的一个结构图如下: 图中还是比较详细的描述了 DuiLib 的整体设计,值得注意的部分是 “窗口…

每日一练 | 华为认证真题练习Day61

1、DHCPv6服务器发送的DHCPv6 ADVERTISE报文目的端口号为? A. 548 B. 547 C. 549 D. 546 2、当DHCPv6客户端收到DHCPv6服务器发送的RA报文中的和O标记位取值为下列哪个数值时,DHCPv6客户端采用DHCPv6有状态自动配置获取IPv6地址和其它配置信息&#…

Android libusb库的使用

Download Data Center Software from Total Phase. 1 Aptiv DABR Aptiv acquired Indian Unwired,Delphi Automotive USB Bridge / Hub,Hub中集成了UDC,upstream UDC连接的主机称为A-Host,downstream UDC被B-Host枚举成Relay devi…

一个床垫的故事

这是学习笔记的第 2460篇文章 这是一个床垫的真实故事,想起来还是蛮感慨的,真是太魔幻了。 起因是我哥搬家,有一个很新的品牌床垫,因为新房子那边买家具已经送了一个床垫了,所以就多出来一个床垫,他打算把…

autogpt的使用,还有出现的问题

AutoGPT简介 AutoGPT是一个实验性开源应用程序,展示了GPT-4语言模型的功能。该程序由GPT-4驱动,将LLM“思想”链接在一起,以自主实现您设定的任何目标。作为GPT-4完全自主运行的首批例子之一,AutoGPT突破了人工智能的极限。 注&a…

Opencv-C++笔记 (6) : opencv-图片和视频操作

文章目录 一、读取函数imread二、图片窗口函数namedWindow三、 图片保存Imwrite和显示函数Imshow四、视频数据的读取五、摄像头直接调用 一、读取函数imread cv::Mat cv::imread(const String & filename,int flagsIMREAD_COLOR)filename:需要读取图像的文件名…

Linux运维监控学习笔记4

Zabbix相关的一些概念: Zabbix用户和用户群组: 用户:Zabbix提供多用户管理,不同的用户可以设置不同的权限,不同的语言和不同的报警方式。 1)创建用户:点击“创建用户”按钮: 2&…

NOTA PEG7 Azide,NOTA-七聚乙二醇叠氮,新型双功能整合剂

NOTA PEG7 Azide中NOTA及其衍生物是新型双功能整合剂之一。NOTA及其衍生物具有良好的配位和鳌合能力,可作为过渡金属离子的配体。叠氮化物基团可以参与铜催化的与炔部分的点击化学反应。 聚乙二醇在科研领域运用广泛,聚乙二醇具有良好的水溶性&#xff0…

【FPGA入门】第一篇、Verilog基本语法常识

目录 第一部分、不同的变量类型 1、wire和reg的区别 2、如何对变量进行赋值呢? 3、什么是阻塞?什么是非阻塞? 第二部分、变量位宽的定义 1、各种系统默认情况 2、变量位宽声明方式 3、表明位宽的情况下,赋值方式 4、两个模…

来自一个敲了5年代码的网络安全工程师的自述(目前薪资30K)

本人是一名敲了5年半代码的网络安全工程师,目前在杭州工作,月薪目前是在30.6K左右,经历过两次跳槽,第一次跳槽拿到了12K的offer,第二次跳槽拿到18K的offer。一直到目前为止的30K左右。 说到这里再给大家提个醒&#x…