heroku部署node.js
发布于 6 年前 作者 jhs1873 3654 次浏览 来自 分享

一、准备工作

1.安装heroku
点击下载

2.登录

heroku login

使用heroku的注册账号登录

3.下载示例

git clone https://github.com/heroku/node-js-getting-started.git
cd node-js-getting-started

二、部署示例文件到heroku

1.创建

heroku create

2.部署

git push heroku master

3.运行实例

heroku ps:scale web=1

4.打开预览

heroku open
  • 查看网站运行日志
heroku logs --tail
  • node-js-getting-started目录下Procfile文件
web: node index.js

这声明了一个进程类型,web以及运行它所需的命令。这个名字web在这里很重要。它声明此进程类型将附加到Heroku 的HTTP路由堆栈,并在部署时接收Web流量。

Procfiles可以包含其他流程类型。例如,您可以为后台工作进程声明一个进程,该进程处理队列中的项目。

三、在本地运行

  1. 既然都开始学习node了,在目录下输入这个命令安装依赖
npm install
  1. 启动
heroku local web

打开 http://localhost:5000 访问本地服务

四、提供数据库(重点来了)

postgre中文社区

1.添加数据库(postgresql)

heroku addons:create heroku-postgresql:hobby-dev

2.安装pg模块(操作postgresql)

npm install pg

3.修改代码

现在编辑目录下的index.js文件以使用此模块连接到DATABASE_URL环境变量中指定的数据库

修改后:

const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
const {
  Pool
} = require('pg');
const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: true
});


express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .get('/db', async(req, res) => {
    try {
      const client = await pool.connect()
      const result = await client.query('SELECT * FROM test_table');
      res.send(result.rows[0].name) //直接打印出第一个
    } catch (err) {
      console.error(err);
      res.send("Error " + err);
    }
  })
  .listen(PORT, () => console.log(`Listening on ${ PORT }`))
  • 没有用官网的示例demo,用官网的示例demo有丢丢坑,会出现Internal Server Error的错误,没有深研究。

4.下载postgresql客户端
点击选择版本下载

  • 安装时右键管理员运行,否则安装失败

扩展:pgadmin (图形化postgres管理)
扩展:连接本地postgres教程

  • 成功安装后一定要设置好环境变量
C:\Program Files\PostgreSQL\10\bin

我的电脑-属性-高级系统设置-环境变量-path-新建

  • 添加后记得重启电脑

5.连接到远程数据库并创建表
分行输入

heroku pg:psql
create table test_table (id integer, name text);
insert into test_table values (1, 'hello database');
\q

pg常用命令

五.推送本地更改到heroku

每次部署到Heroku都遵循相同的模式。

1.首先,将修改后的文件添加到本地git存储库:

git add .

2.将更改提交到存储库:

git commit -m "add"

3.现在进行部署:

git push heroku master

4.最后,打开线上应用:

heroku open

六、提供附加组件

点击查看

七、启动控制台

点击查看

八、定义配置变量

点击查看

回到顶部