宝塔部署nodejs项目

news2025/2/23 23:54:15

前言

部署操作很简单,网上也有很多教程,不过我还是踩坑了,这里记录一下,给其他人也避避坑吧。

步骤

首先你已经有了服务器,并且打开了宝塔面板,其次准备好你的nodejs项目。
在宝塔安装pm2管理器(推荐)
在这里插入图片描述
打开pm2的设置,选择nodejs项目对应的版本
在这里插入图片描述
在左侧菜单点击文件,在根目录点击www,其中 wwwroot就是宝塔的默认建站目录
在这里插入图片描述
新建目录nodejs-demo
在这里插入图片描述
进入文件夹,上传你的nodejs项目。注意:此处本人踩了坑,按照某文写的将node_modules压缩上传了。推荐忽略node_modules将其他文件上传,然后打开宝塔内置终端安装依赖,务必使用对应的包管理工具 ,我这里是pnpm。如果你使用了非npm工具,记得在pm2的模块管理中下载对应工具。
在这里插入图片描述
安装完成后点击目录右侧的刷新即可看到node_modules
在这里插入图片描述
下一步则是放行端口,如果不放行是无法访问的,此处需要放行两处,宝塔面板的安全菜单以及云服务器的防火墙,我的项目端口用的3000那就放行3000
在这里插入图片描述
在这里插入图片描述
回到宝塔面板,打开pm2管理器,添加项目
在这里插入图片描述
添加项目成功后会显示对应端口,并且状态是绿色播放图标,没有显示端口号的话肯定是项目启动失败了,建议重新走一遍流程。
在这里插入图片描述
此时就可以在浏览器输入 ip/域名:端口号 来访问node项目了
在这里插入图片描述

其他

这里具体讲一下我遇到的坑,我按照某文将node_modules压缩打包,在宝塔解压后一直走到pm2添加项目那一步,然后端口号一直显示不出来,删除项目>添加项目 来回了好几遍也没用,后来换了其他文章说要在宝塔里安装依赖,我就删了压缩上传的node_modules重新安装。但是这里我犯傻了,我的项目用的pnpm,pnpm-lock文件也一起上传了,我却用npm在重新安装依赖,结果自然还是不行。此时我还没发现前面的问题,我去检查了pm2里的报错日志,日志提示说express找不到。我就很纳闷,明明node_modules里安装了它,但是日志报错那肯定有问题,我就宝塔上和vscode分别打开了线上和本地的依赖包,一对比发现结构不同,我这才感觉到了问题所在,一看宝塔,里面有npm和pnpm两个的lock文件。把node_modules删除,再把npm的lock文件删除,然后安装了pnpm,用pnpm安装了依赖,终于成功添加了node项目。这么说下来,原来还是自己太粗心了(笑哭),希望其他人不要犯我这种傻。

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

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

相关文章

Nginx 调整文件上传大小限制

使用3A服务器做了网页,感觉挺不错的,使用LNMP环境 用Nginx部署了前端,发现上传附件大一点就会报错,查看配置文件,发现spring的附件配置已经配置了。那么就看下Nginx的body设置。nginx文件上传默认是1MB。 在 server 模…

VUE3TS: Vue3+TS的项目搭建

简介 通过 Vue-cli4 创建的 Vue3TS 的项目,并进行一些基础使用的举例。 此例是以 VSCode编辑器 进行的编码。 一、项目搭建 1. 进入命令提示符窗口 在要搭建项目的文件夹中,点击路径,输入CMD并按回车 2. 查看node版本、Vue-cli版本 2…

Android 架构之长连接技术

上文中我们提到了HttpDNS,虽然它比系统DNS更优,但终归还是要做DNS操作。而长连接都是IP直接连接,因此没有DNS相关的开销和耗时。 3. 如果有大量网络请求,可以明显减少网络延时,节省带宽 对于大型App而言,…

npm——安装、卸载与更新

npm 官方文档:https://docs.npmjs.com/ 什么是npm npm(“Node 包管理器”)是 JavaScript 运行时 Node.js 的默认程序包管理器。 它也被称为“Ninja Pumpkin Mutants”,“Nonprofit Pizza Makers”,以及许多其他随机…

Vue通知提醒框(Notification)

项目相关依赖版本信息 可自定义设置以下属性: 自动关闭的延时时长(duration),单位ms,默认4500ms消息从顶部弹出时,距离顶部的位置(top),单位像素px,默认24p…

WebSocket开发(心跳监测)功能

前言 在之前的文章中完成了客服对话的Demo功能,但是现在的连接是无限制的长时间连接没有做心跳、失活、超时断连等功能,心跳的实现方法有很多种,并且WebSocket就提供了ping/pong类型的消息。 心跳的触发方式也分两种: 客户端触…

微信小程序实现图片上传

前言 手机上传图片的功能大家一定都用过吧,今天教你用微信小程序实现这个小功能。 实现效果如下: 实现思路: 首先我们需要定义一个存放图片的数组,通过方法拿取图片的详细信息,然后调用微信小程序的 wx.uploadFile 方…

element ui datepicker时间控件实现范围选择周,季,年。

因项目要求,需日,周,月,季,年五种日期范围选择器,故参考文章(在末尾)后分享 一.效果图 二、版本及下载 1.实现需要修改源码,目前修改的版本为2.15.3,所以想要…

Vue3路由配置createRouter、createWebHistory、useRouter,useRoute

目录 手动配置Vue-router环境: 组件内部跳转路由、传参useRouter,useRoute Vue3和Vue2基本差不多,只不过需要将createRouter、createWebHistory从vue-router中引入,再进行使用。 手动配置Vue-router环境: 1、下载包&#xff1a…

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘result‘)

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading result) 如题所示问题,耽误三天寻找bug,终于在我睡意朦胧之际发现了一道光,发现 await 出现的三个点: 于是打开 findAllCategory()这个函数 对应…

电商后台管理系统简介

项目介绍 黑马后台管理系统是一个电商后台管理系统的前端项目,基于VueElement实现。 主要包括商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等功能 开发技术 此项目开发我用到的技术有:vue2node.…

Vant 2 - 移动端 Vue 组件库 _ 问题记录

目录 Popup 弹出层 DatetimePicker 时间选择 Field 输入框 Picker 选择器 List 列表 Tab 标签页 发布初衷 : 记录在移动端项目中使用 Vant 2 组件库时遇到的各种问题 , 方便以后再次遇到类似问题 , 能够快时查阅解决 , …

Vue3+TypeScript+Vite如何使用require动态引入类似于图片等静态资源

问题:Vue3TypeScriptVite的项目中如何使用require动态引入类似于图片等静态资源! 描述:今天在开发项目时(项目框架为Vue3TypeScriptVite)需要 动态引入静态资源,也就是img标签的src属性值为动态获取&#…

Lodash 使用及常用方法

简介 Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数,Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。 官网 Lodash 简介 | Lodash 中文文档…

TypeScript详解十六:类型声明(declare)

目录前言一、类型声明的作用?1.1 declare 关键字1.2 示例二、常见的几种类型声明2.1 普通类型声明2.2 外部枚举2.3 命名空间三、类型声明文件3.1 模拟类型声明文件,以 jquery 为例3.2 使用手动实现的jquery.d.ts声明文件3.3 第三方声明文件(以…

Django web 开发(三) - Django的使用

文章目录Django安装Django安装Pythonpip加速安装Django创建项目文件介绍简单访问APP添加新的app注册app创建blog的页面templates模板templates模板语法单一变量列表循环(列表)字典循环(字典)列表套字典条件判断请求和响应案例: 用户登录数据库操作安装第三方模块ORM创建数据库D…

node版本、npm版本随意切换

前言 随着项目越做越多,难免会有a项目需要12.x的node版本,b项目需要>16.0.0的情况。 为了避免出现node版本切换的繁琐,特意找了这么一个工具,主要是方便管理node版本。 请按照以下步骤来实现 官方地址: 传送门 1、下载软件 …

使用react实现后台管理系统项目

一.开发React必须依赖三个库 1.react:包含react所必须的核心代码 2.react-dom:react渲染在不同平台所需要的核心代码 3.babel:将jsx转换成React代码的工具 二.React的依赖引入 1.方式一:直接CDN引入 2.方式二:下载后&…

vue高级特性总结

文章目录一、修饰符1、事件修饰符案例1案例22、按键修饰符案例33、表单修饰符案例4二、计算属性computed案例5三、监听器watch案例6案例7:当商品数量大于1000时,输入框中数字自动设置成1000;当商品数量小于0时,输入框中数字自动设…

vue中如何使用vue-pdf及相应报错解决

目录 一、安装npm 依赖 二、引入组件 1、html中使用组件 单页 多页 2、数据处理 单页 多页 三、项目使用--代码部分 四、报错解决 前言 使用vue-pdf组件实现文件预览功能 并在文件上增加操作按钮vue3不支持vue-pdf,vue3项目用pdfjs-dist一、安装npm 依赖…