از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
استقرار یک برنامه Node.js در Heroku خدمات میزبانی رایگان متعددی برای راهاندازی و اجرای عمومی برنامههای Node.js وجود دارد. یکی از این سرویس ها Heroku است که به شما امکان می دهد برنامه های خود را مستقر کنید، مدیریت کنید و مقیاس بندی کنید روی وب. در این مقاله ما یک برنامه ساده Node و Express.js می سازیم که…
سرفصلهای مطلب
معرفی
خدمات میزبانی رایگان متعددی برای راهاندازی و اجرای عمومی برنامههای Node.js شما وجود دارد. یکی از این خدمات است هروکو، که به شما امکان می دهد برنامه های خود را استقرار، مدیریت و مقیاس بندی کنید روی وب.
در این مقاله ما یک برنامه ساده Node و Express.js می سازیم که لینک های داده شده را کوتاه می کند و آن را در Heroku مستقر می کند.
ایجاد یک کوتاه کننده URL Node.js
برای ایجاد توسعه process راحت تر استفاده خواهیم کرد بیان، که یک چارچوب وب سبک وزن است که انعطاف پذیر است و به راحتی قابل تنظیم است. Express همراه با یک مولد برنامه، اما ما از صفر شروع می کنیم.
ایجاد فهرست پروژه
اجازه دهید cd
وارد فضای کاری شده و یک دایرکتوری جدید برای پروژه ایجاد کنید:
$ mkdir url-shortener
مقداردهی اولیه npm
بعد بیایید مقداردهی اولیه کنیم npmو با آن، پروژه ما را شروع کنیم:
$ npm init
npm init
یک سری سوالات (نام بسته، نسخه، توضیحات و غیره) می پرسد. برای سادگی، بیایید با ضربه زدن از همه اینها بگذریم برگشت برای هر درخواست سپس گره a را ایجاد می کند package.json
فایل و print آن را به terminal:
{
"name": "url-shortener",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
}
زمینه های در package.json
(نام بسته، توضیحات، نویسنده، و غیره) را می توان در هر زمان به روز کرد، بنابراین شما نیازی به نگرانی در مورد آن ندارید.
آنچه ما در اینجا به صورت دستی اضافه کرده ایم این است "start": "node app.js"
. این بعداً، زمانی که برنامه را در Heroku مستقر کنیم، بسیار مهم خواهد بود.
هروکو باید بداند چگونه برای اجرای برنامه ما، و این معمولاً از طریق a انجام می شود نمایه. از آنجایی که برنامه ما بسیار ساده است، یک Procfile بیش از حد است، و کافی است به سادگی تعریف کنیم که برنامه ما باید با اجرای ساده اجرا شود. node app.js
فرمان
نصب اکسپرس
با وجود این موضوع، ما آماده نصب Express هستیم:
$ npm install express --save
ساخت سرور نود
با نصب Express یک برنامه بسیار ساده در یک فایل به نام ایجاد می کنم app.js
:
const express = require('express');
const app = express();
const path = require('path');
const port = 3000;
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
app.listen(port, () => console.log(`url-shortener listening روی port ${port}!`));
برنامه در این مرحله در واقع فقط صفحه دیگ اکسپرس مورد نیاز برای راه اندازی آن است، با یک کنترلر مسیر که یک HTML را برمی گرداند. page روی بندر 3000
.
بیایید جلو برویم و آن را تعریف کنیم page، که URL را می پذیرد که ما می خواهیم کوتاه کنیم. این فقط از یک هدر و یک فرم ساده تشکیل شده است که URL را می پذیرد:
<h1>URL Shortener</h1>
<form method="POST" action="/url">
<input type="text" name="url" />
<input type="submit" />
</form>
ما می توانیم با اجرای زیر آزمایش کنیم که آیا برنامه به خوبی اجرا می شود:
$ node app.js
از آنجایی که ما آن را اضافه کرده ایم "start" : "node app.js"
فرمان به ما package.json
فایل، ما همچنین می توانیم آن را با استفاده از دستور NPM اجرا کنیم:
$ npm start
و پیمایش به http://localhost:3000
:
رسیدگی به ارسال فرم
در حالی که page به درستی رندر می شود، هیچ منطقی برای رسیدگی به آن وجود ندارد پست درخواست ارسال شده از طریق فرم در /url
نقطه پایانی
برای ربودن URL از درخواست ارسال شده از طریق فرم، از آن استفاده خواهیم کرد تجزیه کننده بدن ماژول و آن را از بدنه درخواست استخراج کنید، پس بیایید ادامه دهیم و require
آن را نیز و برای استفاده تنظیم کنید:
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.urlencoded());
با انجام این کار، میتوانیم بدنه درخواست را از طریق استخراج کنیم req.body
پس بیایید ادامه دهیم و یک کنترل کننده درخواست دیگر بسازیم که URL را از بدنه بسته بندی می کند و آن را از طریق پاسخ ارسال می کند:
app.post('/url', function(req, res) {
const url = req.body.url;
res.send(url);
});
این هنوز آن چیزی نیست که ما میخواهیم، زیرا در حال بازیابی کل URL و نه نسخه کوتاه شده هستیم.
کوتاه کردن URL
تنها کاری که باید انجام دهیم تا برنامه Node ما کامل شود این است که URL را قبل از ارسال مجدد کوتاه کنیم. برای این کار می توانیم از node-کوتاه کننده آدرس مدول. بیایید آن را از طریق npm نصب کنیم:
$ npm install node-url-shortener --save
سپس به بسته موجود در برنامه نیاز دارید:
const urlShortener = require('node-url-shortener');
و در آخر، بیایید بلوک دیگری از کد اضافه کنیم که URL را قبل از ارسال مجدد کوتاه می کند:
app.post('/url', function(req, res) {
const url = req.body.url;
urlShortener.short(url, function(err, shortUrl){
res.send(shortUrl);
});
});
این urlShortner
دارد short()
روشی که دو پارامتر را می پذیرد: URL اصلی و تابع callback. URL کوتاه شده به تابع callback و سپس به آن منتقل می شود res.send()
.
بیایید برنامه را راه اندازی کنیم و آن را آزمایش کنیم:
پس از وارد کردن یک URL، ما با استقبال مواجه می شویم:
در حال اعزام به هروکو
ثبت نام برای Heroku و نصب CLI
اکنون که برنامه ساخته شده است، وقت آن است که به Heroku فکر کنید. اگر حساب کاربری ندارید، به این آدرس مراجعه کنید signup.heroku.com و یکی ایجاد کنید.
هنگامی که یک حساب کاربری دارید، کار بعدی نصب ابزارهای CLI Heroku است که برای استقرار استفاده می شود. Heroku دستورالعمل های نصب را در اینجا ارائه می دهد مرکز توسعه دهندگان.
هل دادن به هروکو
استقرار در هروکو از طریق Git. زمانی که بفهمید چگونه کار می کند بسیار ساده است. در اصل شما می توانید با فشار دادن به یک مخزن از راه دور در Heroku مستقر شوید، درست مانند فشار دادن به GitHub.
از آنجا که این یک پروژه جدید است، Git باید مقداردهی اولیه شود:
$ git init
اکنون، ما آماده ایم تا تمام فایل های پروژه را اضافه و commit کنیم. اگرچه، قبل از انجام این کار، یک را اضافه می کنیم .gitignore
فایل چون ما نمی خواهیم node_modules
دایرکتوری که باید متعهد شود. این باید توسط npm پس از استقرار به جای متعهد به کنترل منبع تولید شود.
در شما .gitignore
فایل، به سادگی اضافه کنید:
node_modules
در صورتی که در راه نیست، میتوانیم اضافه و متعهد شویم:
$ git add .
$ git commit -m 'initial commit'
هنگامی که پروژه متعهد شد، باید یک برنامه Heroku ایجاد کنیم که مطابق با برنامه Node ما باشد:
$ heroku create
Creating app... !
▸ Invalid credentials provided.
heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/auth/browser/abcd1234-b6a7-4df4-bb42-0eaf987d0637
Logging in... done
Logged in as (email protected)
Creating app... done, ⬢ nameful-wolf-12818
https://nameful-wolf-12818.herokuapp.com/ | https://git.heroku.com/nameful-wolf-12818.git
اگر اولین بار است که از CLI استفاده می کنید، Heroku از شما می خواهد که از طریق مرورگر وارد شوید. این process بسیار ساده است، فقط دستورالعمل ها را دنبال کنید.
پس از تکمیل، Heroku نام و URL برنامه جدید ایجاد شده را برمی گرداند (نام برنامه شما با من متفاوت خواهد بود). اگر به URL مراجعه کنید، یک خوش آمدگویی Heroku خواهید دید page.
این هنوز نیست ما برنامه کوتاه کننده URL، به سادگی یک برنامه عمومی Heroku که ما برنامه خود را در آن مستقر خواهیم کرد.
استقرار برنامه
در قبلی heroku create
دستور، یک کنترل از راه دور جدید به مخزن Git شما اضافه خواهد شد که به شما امکان می دهد با یک دستور ساده مانند زیر در Heroku مستقر شوید:
$ git push heroku master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 326 bytes | 326.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
...
...
...
remote: Verifying deploy... done.
To https://git.heroku.com/nameful-wolf-12818.git
5cb9118..dd0bacd master -> master
از آنجایی که برنامه با موفقیت اجرا شد، میتوانیم آن را راهاندازی کنیم:
اگرچه، ما به دلیل عدم تطابق در پورت ها با مشکل مواجه خواهیم شد. در برنامه ما، کدگذاری سختی انجام داده ایم که از پورت استفاده می کند 3000
، اما هروکو کار می کند روی یک پورت متفاوت و این برخورد برنامه ما را خراب می کند.
برای اینکه اپلیکیشن هم به صورت محلی و هم به صورت محلی کار کند روی هروکو، پورت را تغییر می دهیم یا 3000
یا process.env.PORT
که توسط Heroku تنظیم شده است:
const port = process.env.PORT || 3000;
استقرار مجدد برنامه و رفرش کردن page، همه چیز به خوبی کار می کند!
نتیجه
خدمات میزبانی رایگان متعددی برای راه اندازی و اجرای عمومی برنامه های شما وجود دارد. یکی از این خدمات است هروکو، که به شما امکان می دهد برنامه های خود را استقرار، مدیریت و مقیاس بندی کنید روی وب.
ما یک برنامه Node و Express ساده ساخته ایم که URL های ارائه شده را از طریق کوتاه می کند node-url-shortener
مدول. سپس آن برنامه را برای استقرار آماده کردیم و در نهایت آن را راه اندازی کردیم روی هروکو.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1403-01-23 03:00:04