使用宝塔部署Node项目(详细!)

前情提要: 假定我们已经安装好了宝塔面板. 且博主的前端页面没有通过站点部署而是通过node项目中index.js文件动态指向的.(就相当于路由的重定向),具体实现如下图所示:

// ①导入path
const path = require('path');
// ②静态托管当前目录
app.use(express.static(path.join(__dirname, 'dist')));

// ③访问根目录时返回index.html
app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname + '/dist/index.html'));
});

1、上传node项目文件夹

 

        在上传node文件夹前,切记先将node_modules文件夹压缩后,再将node_modules文件夹删除,因为上传的文件夹内部不能走过1000个文件.上传文件夹后,点击开始上传,进行上传好的文件夹后,将node_modules压缩包解压.如下图所示: 

 2、打包上传vue项目

        npm run build将vue项目打包后,生成的dist文件夹,同第一步中一样上传该文件夹,上传位置在node文件夹内部.如下图所示(位置):

         到这里,我们已经完成了网页部署的 50%.

  3、添加刚刚上传的Node项目,并配置域名.

        博主的域名是在腾迅云购买的.

        具体操作如下图所示:

        这时项目已经挂载好了,接下来给该项目添加域名并打开外网映射.如下图所示: 

4、开放项目所需的宝塔与腾迅云服务器端口

        只有开放这些端口,我们的项目在运行时才有可能成功,具体实现如下图所示:

        到这里,我们已经完成了网页部署的 70%.

5、添加数据库

        博主使用的可视化数据库是:Navicate

        首先,我们需要先添加一个数据库,具体操作如下图所示:

        数据库添加好后,我们要获取项目中所需要的数据库数据,具体操作如下图所示:

        将刚刚生成的数据库数据文件导入创建好的数据库中,具体操作如下图所示:

        这样,我们便将数据库部分也解决了,成功就在眼前!

 6、查看项目启动状态

        查看项目日志是否与本地启动时成功状态差不多一致.

        此时,项目部署已经基本完成了,不出意外的话,我们就有可能要出意外了.

        网站运行结果是,网站只有最基本的静态页面,而接口请求失败,画重点,因为我们在本地测试项目时, axios中的baseUrl基本是"http://127.0.0.1:xxxx",但我们已经将其挂载到了服务器中,所以我们将其切换成"http://购买的服务器ip:xxxx",这样,接口就又能请求成功了.页面也就成功完整的显示了.

7、总结

        每个人的操作过程都充满了未知BUG,真心希望此教程能帮你完成,若最终还是失败了,看看报错的信息是什么,以下是一些常见的错误及原因:

        

        1.1 502 Bad Gateway:

                a. 后端运行崩溃了或者压根没运行起来,去宝塔面板->网站->设置->项目日志里面查看一下,什么原因导致的崩溃,可能数据库问题、代码问题等;

                b. 防火墙也就是安全组,没有让项目端口通过;

                c. Nginx配置里面后端地址配置错误。

        1.2  跨域问题:

                浏览器报错: Access to XMLHttpRequest at 'xxx' from origin 'xxx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

                a. 首先是后端,跨域是否允许;

                b. 然后前端,baseURL是否设置正确;

                c. 然后就是Nginx配置问题。

        1.3 图片或文件加载错误:

                浏览器报错:(ERR_CONNECTION_REFUSED)

                一开始,数据库中存储的图片地址为 127.0.0.1,而部署后无法访问该地址,更新数据库中的图片地址为公共访问的域名或 IP 地址即可。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值