Vue+Node.js部署到Heroku

简介

使用Heroku的免费云服务来部署Express服务器,数据库使用的是MongoDB云数据库。由于国内访问这两个网站的速度可能较慢,所以最好备有梯子。

一、前后端结合

1、Vue项目打包

使用npm run build来打包我们已经写好的Vue项目。将打包完成后的dist文件夹复制到Express项目中。

注意:由于后端的端口会发生改变,所以api地址也会发生改变。所以前端的api请求地址也要做出相应的修改,不然部署后将无法请求到数据。

由于不知道端口将会变成多少,我的方法是将api地址的前段设置为部署后的网址,即https://yourHerokuAppName.herokuapp.com/api

2、Express后端设置

(1)设置服务器端口号

由于Heroku的端口号是自行配置的,所以我们要将服务器端口号设置为;

const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`http://localhost:${port}`);
});

(2)设置静态文件路径

var fs = require('fs');
var path = require('path');
app.use(express.static(path.resolve(__dirname, './dist')));

(3)将路由指向index.html

app.get('*', function(req, res) {
  res.sendFile(path.resolve(__dirname, './dist/index.html'));
});

(4)创建Procfile文件

在项目的根目录中新建名为Procfile的文件,并写入

web: node index.js

Procfile 文件用来声明应用如何在服务器中运行,这里通过 node index.js 执行 Node 脚本。其中,index.js为服务器的起始文件。

3、文件上传Github

将前后端结合好后的文件上传到github仓库中。

二、部署到Heroku

首先注册一个Heroku账号(163,yeah,qq邮箱被禁用);注册完成后登录Heroku并创建一个app;由于连接Heroku的网速较慢,所以使用Github的部署方式,在Github授权之后,选择要部署的文件仓库及分支;最后点击部署按钮,等待部署完成后就可以查看网站了。

部署参考文章:三步将Node应用部署到Heroku上

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容