我根据您的需求,为您提供完整的“教你在 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技术站