教你在heroku云平台上部署Node.js应用

我根据您的需求,为您提供完整的“教你在 Heroku 云平台上部署 Node.js 应用”的攻略。

1. 准备工具和环境

在开始操作之前,先确保你拥有以下工具和环境:

  • Node.js 和 npm
  • Git
  • Heroku CLI

2. 创建应用

我们先来创建一个示例的 Node.js 应用。在本地创建一个文件夹,进入该文件夹,通过以下命令初始化一个 Node.js 应用:

npm init

按照提示完成应用的初始化过程,然后安装 Express 框架:

npm install express --save

在应用根目录下创建一个 index.js 文件,并添加以下代码:

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

app.get('/', (req, res) => {
  res.send('Hello from Heroku!');
});

app.listen(port, () => {
  console.log(`Server listening on port ${port}.`);
});

这个应用会在本地监听3000端口,当你通过浏览器访问http://localhost:3000时,会显示"Hello from Heroku!"。

3. 部署到 Heroku

我们先在 Heroku 上创建一个新的应用,通过以下命令:

heroku create

该命令将会自动创建一个随机的应用名称,并且会自动关联 Git 远程仓库。

接下来,我们将该应用部署到 Heroku。首先将应用代码提交到 Git 仓库:

git add .
git commit -m "Initial commit"
git push heroku master

部署完成后,你可以通过以下命令访问该应用:

heroku open

这会自动打开浏览器,访问该应用的 URL。

4. 更新应用

如果需要更新应用,在本地修改完代码后,提交到 Git 仓库,并通过以下命令将代码部署到 Heroku:

git push heroku master

这会自动将代码部署到 Heroku,你可以直接访问该应用的 URL 进行测试。

5. 示例说明

下面通过两个示例说明部署 Node.js 应用到 Heroku 上的具体步骤:

示例一:部署一个静态网站

首先,你需要在本地创建一个文件夹,然后在该文件夹下创建一个 index.html 文件,并添加以下内容:

<!DOCTYPE html>
<html>
<head>
  <title>Hello from Heroku</title>
</head>
<body>
  <h1>Hello from Heroku</h1>
</body>
</html>

接下来,在该文件夹下打开终端,并创建一个 Node.js 应用:

npm init
npm install express --save

在应用根目录下创建一个 index.js 文件,并添加以下代码:

const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

app.use(express.static('public'));

app.listen(port, () => {
  console.log(`Server listening on port ${port}.`);
});

在应用根目录下创建一个 public 文件夹,在该文件夹下添加一个 .gitkeep 文件,然后将 index.html 文件放到 public 文件夹下。

现在,你可以通过以下命令在 Heroku 上部署该应用:

heroku create
git add .
git commit -m "Initial commit"
git push heroku master
heroku open

这会自动打开浏览器,访问该应用的 URL。

示例二:部署一个带有数据库的应用

该示例将展示如何在 Heroku 上部署一个带有 MongoDB 数据库的 Node.js 应用。

首先,你需要在本地创建一个文件夹,并添加以下代码:

const express = require('express');
const mongoose = require('mongoose');
const app = express();
const port = process.env.PORT || 3000;
const mongoUrl = process.env.MONGO_URL || 'mongodb://localhost:27017/myapp';

mongoose.connect(mongoUrl, { useNewUrlParser: true, useUnifiedTopology: true });

const schema = new mongoose.Schema({
  name: String
});

const Model = mongoose.model('Model', schema);

app.get('/', async (req, res) => {
  const doc = new Model({ name: 'Hello from Heroku!' });
  await doc.save();

  const savedDoc = await Model.findOne({ name: 'Hello from Heroku!' });
  res.send(savedDoc.name);
});

app.listen(port, () => {
  console.log(`Server listening on port ${port}.`);
});

修改应用根目录下的 package.json 文件,添加以下代码:

{
  "scripts": {
    "start": "node index.js"
  }
}

现在,你可以通过以下命令在 Heroku 上部署该应用:

heroku create
heroku addons:create mongolab
git add .
git commit -m "Initial commit"
git push heroku master
heroku open

这会自动打开浏览器,访问该应用的 URL。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你在heroku云平台上部署Node.js应用 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Redis中AOF与RDB持久化策略深入分析

    本篇文章将详细讲解Redis中AOF与RDB持久化策略的深入分析,主要包括以下内容: 什么是Redis持久化? Redis的两种持久化策略 AOF持久化 RDB持久化 两种持久化策略的比较 示例说明 总结 什么是Redis持久化? Redis是一种内存数据库,数据存储在内存中,当Redis重启或崩溃时,数据将会丢失。因此,为了在Redis发生故障时能够保留数…

    database 2023年5月22日
    00
  • Ubuntu下完美实现迁移MySQL数据库位置

    下面是Ubuntu下完美实现迁移MySQL数据库位置的完整攻略: 1. 备份 MySQL 数据库 在进行迁移之前,务必要先备份 MySQL 数据库,以防数据遗失。可使用以下命令来备份数据库: mysqldump -u root -p –databases dbname > database.sql 其中,root 是数据库的用户名,dbname 是需…

    database 2023年5月22日
    00
  • redis数据库的安装配置

       redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,redi…

    Redis 2023年4月13日
    00
  • 全面了解mysql中utf8和utf8mb4的区别

    当我们在使用MySQL数据库的时候,经常会涉及到字符集的问题。在MySQL中,常用的字符集有UTF-8和UTF-8MB4两种,那么这两者之间有哪些区别呢? 一、UTF-8和UTF-8MB4的简单介绍 UTF-8和UTF-8MB4都是用来表示Unicode字符集的字符集,其中UTF-8是由1~4个字节编码组成的,而UTF-8MB4是由1~4个字节编码组成的超集…

    database 2023年5月22日
    00
  • SQL MSSQL 常用代码大全

    SQL MSSQL 常用代码大全攻略 一、什么是MSSQL? MSSQL是一种关系型数据库管理系统,是微软公司提供的一种数据库系统。它可以用于存储、查询和管理数据,并提供多种高级功能,如事务处理、复制和存储过程等。 二、MSSQL 常用代码大全 以下是一些MSSQL常用的代码片段: 1.创建数据库 CREATE DATABASE database_name;…

    database 2023年5月21日
    00
  • createObjectURL方法实现本地图片预览

    下面是关于 “createObjectURL方法实现本地图片预览” 的完整攻略,包括了示例说明。 简介 createObjectURL 是 HTML5 新增的 API,用于将 Blob 对象或 File 对象转换为 URL。在浏览器中使用该 URL 可以进行本地文件预览,常用于图片和视频的预览。 示例 下面是一个简单的示例,实现点击按钮上传图片并显示预览图。…

    database 2023年5月22日
    00
  • 15个初学者必看的基础SQL查询语句

    15个初学者必看的基础SQL查询语句 1. SELECT语句 SELECT语句使用最频繁,它用于选择需要的字段和数据: SELECT column1, column2, … FROM table_name; 其中 column1,column2等是需要查询的字段,table_name是要从中查询的表名。例如,下面查询students表中的所有数据: SE…

    database 2023年5月21日
    00
  • redis在Windows中下载及安装、设置教程

    Redis在Windows中下载及安装、设置教程 下载Redis 在Windows系统下,我们可以从Redis官网下载Redis for windows版本,下载地址为:https://github.com/microsoftarchive/redis/releases 选择最新版本,下载后解压到我们所需的目录即可。 安装Redis 下载完成后,双击进入解压…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部