Express یکی از محبوب ترین چارچوب های Node.js است. Koa یک چارچوب وب جدید است که توسط تیم اکسپرس ایجاد شده است. هدف آن این است که یک نسخه مدرن و مینیمالیستی اکسپرس باشد. برخی از ویژگی های آن پشتیبانی و اتکا به ویژگی های جدید JavaScript مانند ژنراتور و async / await است. Koa همچنین با هیچ میان افزاری ارسال نمی شود اما می توان آن را با استفاده از افزونه های سفارشی و موجود گسترش داد.
با دنبال کردن این مقاله ، با چارچوب Koa بیشتر آشنا می شوید و یک اپلیکیشن درست می کنید تا با عملکرد و فلسفه آن آشنا شوید.
پیش نیازها
برای دنبال کردن این آموزش ، به نصب موارد زیر نیاز دارید:
Node.js و NPM
همچنین نیاز به دانش کار با دستور JavaScript و ES6 دارید.
ستاپ و پیکربندی
برای شروع ، یک دیرکتوری جدید برای پروژه خود ایجاد کنید. این کار با کپی کردن و اجرای دستور زیر در ترمینال شما قابل انجام است:
$ mkdir koala

توجه: شما می توانید پروژه خود را به هر نامی ایجاد کنید ، اما در این مقاله ما از Koala به عنوان نام و دیرکتوری پروژه استفاده خواهیم کرد.

در این مرحله ، شما دایرکتوری پروژه koala را ایجاد کرده اید. در مرحله بعد ، پروژه گره خود را از داخل دیرکتوری شروع می کنید. می توانید با اجرای دستورات زیر این کار را انجام دهید:
$ cd koala

$ npm init koala
پس از اجرای دستور npm init ، اعلان ها را دنبال کنید و جزئیات پروژه خود را پر کنید. در پایان این کار ، یک فایل pack.json با اطلاعاتی که هنگام درخواست از شما وارد کرده اید ، خواهید داشت. توجه داشته باشید که می توانید npm init -y را برای ایجاد فایل pack.json با مقادیر پیش فرض اجرا کنید.
سپس ، برای نصب Koa این دستور را اجرا کنید:
$ npm install koa –save

بسته به نسخه Node موردنظر شما ممکن است نیازی به افزودن فلگ –save نداشته باشید. این فلگ به نسخه های قدیمی تر Node می گوید که کتابخانه نصب شده (در این حالت Koa) را به لیست متعلقات موجود در فایل pack.json شما اضافه کند. در نسخه های Node جدیدتر ، فقط می توانید npm i koa را اجرا کنید تا Koa را نصب کنید.
ایجاد سرور مجازی Koa
در طول راه اندازی و شروع پروژه ، از شما خواسته شد كه وارد قسمت ورود برنامه خود شوید. در این مقاله از index.js استفاده خواهید کرد که مقدار پیش فرض به عنوان نقطه ورود شما بود.
ابتدا فایل index.js را ایجاد کنید. این کار را از راه های گوناگون می توان انجام داد. برای کاربران MacOS و Linux ، این کار با اجرای دستور زیر در ترمینال شما قابل انجام است:
$ touch index.js
با استفاده از ویرایشگر کد / متن مورد نظر خود ، پروژه خود را باز کرده و قطعه زیر را در فایل index.js کپی کنید:
// index.js

‘use strict’;

const koa = require(‘koa’)
const app = new koa()

app.use(function *(){
this.body = “Hello World !!!”;
});

app.listen(1234)

در قسمت بالا ، شما یک برنامه koa ایجاد کرده اید که روی پورت 1234 اجرا می شود. می توانید برنامه را با استفاده از دستور زیر اجرا کنید:
$ node index.js

و از برنامه در http: // localhost: 1234 بازدید کنید.
ساخت برنامه شما
همانطور که قبلاً نیز اشاره شد ، Koa.js با هیچ میان افزاری حمل نمی کند و برخلاف ماقبل خود ، یعنی Express ، مسیریابی را به طور پیش فرض انجام نمی دهد.
به منظور اجرای مسیرها در برنامه Koa ، یک کتابخانه میان افزار برای مسیریابی در Koa ، یعنی Koa Routerنصب خواهید کرد. با اجرای این دستور آن را نصب کنید:
$ npm install koa-router –save

برای استفاده از روتر در برنامه خود ، فایل index.js خود را اصلاح کنید:
// index.js

‘use strict’;
const koa = require(‘koa’)
const koaRouter = require(‘koa-router’)

const app = new koa()
const router = new koaRouter()

router.get(‘koala’, ‘/’, (ctx) => {
ctx.body = “Welcome! To the Koala Book of Everything!”
})

app.use(router.routes())
.use(router.allowedMethods())

app.listen(1234, () => console.log(‘running on port 1234’))

در بالا ، شما یک مسیر را بر روی آدرس اصلی برنامه خود تعیین کرده اید (http: // localhost: 1234) و این مسیر را برای برنامه Koa خود ثبت کرده اید.
برای اطلاعات بیشتر در مورد تعریف مسیر در برنامه های Koa.js ، به اسناد کتابخانه Koa Router در این لینک مراجعه کنید.
همانطور که قبلاً گفته شد، Koa به عنوان یک چارچوب حداقلی به کار می رود ، بنابراین ، برای اجرای رندر نمای با موتور قالب باید یک کتابخانه میان افزار را نصب کنید. چندین کتابخانه برای انتخاب وجود دارد اما در این مقاله از koa-ejs استفاده خواهید کرد.
برای این کار ابتدا کتابخانه را با استفاده از دستور زیر نصب کنید:
$ npm install koa-ejs –save

در مرحله بعدی ، فایل index.js خود را اصلاح کنید تا الگوی خود را با قطعه کد زیر ثبت کنید:
// index.js

‘use strict’;
const koa = require(‘koa’)
const path = require(‘path’)
const render = require(‘koa-ejs’)
const koaRouter = require(‘koa-router’)

const app = new koa()
const router = new koaRouter()

render(app, {
root: path.join(__dirname, ‘views’),
layout: ‘layout’,
viewExt: ‘html’,
cache: false,
debug: true
})

router.get(‘koala’, ‘/’, (ctx) => {
ctx.body = “Welcome! To the Koala Book of Everything!”
})

app.use(router.routes())
.use(router.allowedMethods())

app.listen(1234, () => console.log(‘running on port 1234’))

همانطور که در بالا مشاهده شد ، در ثبت نام تمپلیت خود ، دیرکتوری اصلی فایل های نما (view)، بسط فایل های نما و فایل نمای پایه (که نماهای دیگر گسترش می دهند) را به برنامه خود میگویید.
اکنون که میان افزار قالب خود را ثبت کرده اید ، تعریف مسیر خود را برای ارائه یک فایل الگو اصلاح کنید:
// index.js

router.get(‘koala’, ‘/’, (ctx) => {
let koala_attributes = [];
koala_attributes.push({
meta_name: ‘Color’,
meta_value: ‘Black and white’
})
koala_attributes.push({
meta_name: ‘Native Country’,
meta_value: ‘Australia’
})
koala_attributes.push({
meta_name: ‘Animal Classification’,
meta_value: ‘Mammal’
})
koala_attributes.push({
meta_name: ‘Life Span’,
meta_value: ’13 – 18 years’
})
koala_attributes.push({
meta_name: ‘Are they bears?’,
meta_value: ‘no!’
})
return ctx.render(‘index’, {
attributes: koala_attributes
})
})

در بالا ، مسیر پایه شما فایل index.html را که در دیرکتوری نماها موجود است را ارائه می دهد. فایل index.html شما حاوی چند HTML اساسی برای نمایش ویژگی های koala شما است. در زیر مشاهده کنید:
<!– views/index.html –>

<h2>Koala – a directory Koala of attributes</h2>
<ul class=”list-group”>
<% attributes.forEach( function(attribute) { %>
<li class=”list-group-item”>
<%= attribute.meta_name %> – <%= attribute.meta_value %>
</li>
<% }); %>
</ul>

برای دریافت گزینه های بیشتر با استفاده از میان افزار الگوی Koa-ejs ، مطالب کتابخانه را در اینجا مشاهده کنید.
مدیریت خطاها و پاسخ ها
Koa با مشخص کردن زود هنگام میان افزار خطا در فایل ورود به سیستم ، خطاها را مدیریت می کند. میان افزار خطا باید زود تعریف شود زیرا فقط خطاهایی که بعد از معرفی میان افزار خطا ایجاد شده باشند، دریافت میشوند. با استفاده از فایل index.js خود ، آن را تنظیم کنید تا موارد زیر را شامل شود:
// index.js

‘use strict’;
const koa = require(‘koa’)
const render = require(‘koa-ejs’)
const koaRouter = require(‘koa-router’)

const app = new koa()
const router = new koaRouter()

app.use( async (ctx, next) => {
try {
await next()
} catch(err) {
console.log(err.status)
ctx.status = err.status || 500;
ctx.body = err.message;
}
})

بلوک فوق هر گونه خطایی را که هنگام اجرای برنامه شما به وجود آمده است ، دریافت می کند. ما این کار را با ایجاد خطایی در بدنه عملکرد مسیری که تعریف کرده اید آزمایش خواهیم کرد:
// index.js

router.get(‘koala’, ‘/’, (ctx) => {
ctx.throw(‘Test Error Message’, 500)
})

هدف پاسخ Koa معمولاً در آبجکت زمینه آن قرار گرفته است. بیایید با استفاده از تعریف مسیر ، نمونه ای از تنظیم پاسخ ها را نشان دهیم:
// index.js

‘use strict’;
const koa = require(‘koa’)
const koaRouter = require(‘koa-router’)

const app = new koa()
const router = new koaRouter()

app.use( async (ctx, next) => {
try {
await next()
} catch(err) {
console.log(err.status)
ctx.status = err.status || 500;
ctx.body = err.message;
}
})

router.get(‘koala’, ‘/’, (ctx) => {
ctx.status = 200
ctx.body = “Well this is the response body”
})

نتیجه
در این مقاله ، شما مختصراً با Koa و چگونگی اجرای برخی كاركردهای متداول در یك پروژه Koa آشنا شدید. Koa یک چارچوب حداقلی و انعطاف پذیر است که می تواند به قابلیت های بیشتری از آنچه این مقاله نشان داده است ، گسترش یابد. به دلیل مشابه بودن آن به اکپرس ، برخی حتی ماهیت آن را با Express 5.0 توصیف کرده اند.
کل کد این مقاله در Github موجود است و منبع شامل برخی مفاهیم بیشتر میباشد که در اینجا مورد بحث نیستند ، زیرا خارج از محدوده مقدمه میباشند.

 

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

استفاده از nsh برای دستورات از راه دور اوبونتو 18 –  میزبانی وب سایت با Caddy اوبونتو 18

تنظیم سرور ذخیره سازی آبجکت با استفاده از Minio در اوبونتو 18  –  ضبط و اشتراک گذاری ترمینال با Terminalizer اوبونتو

تنظیم مسیریابی شرطی و پاسخگو با React Router v4  –  ایجاد یک URL کوتاه کننده با Django و GraphQL

یک برنامه ردیابی سلامت را با React ،GraphQL و Okta –  ساخت برنامه چت زمان حقیقی React و GraphQL

به روزرسانی فیلترهای مرتب سازی Angular (زاویه ای) –  با استفاده از React ، Superagent و API اینستاگرام

نحوه ساختن یک برنامه جهانی با Nuxt.js و Django –  دکمه دانلود با ریزتعاملات با CSS ، anime.js و segment.js

نحوه اضافه کردن عکسهای پیشرفته در Node و Express  –  با Vue ،GraphQL و Apollo Client یک وبلاگ ساخت

یک برنامه SSR با روتر Preact ، Unistore و Preact بسازید  –  ساخت برنامه های وب پیشرونده با Angular

اشکال زدایی JavaScript در تولید با نقشه های منبع  –  می توان با Koa برنامه “سلام جهانی” ساخت

ساختن یک برنامه با Node ، React ، Okta  –   مدیریت حالت فرم در React با Redux Form

نحوه تنظیم Laravel ، Nginx و MySQL  –  ارتقاء از AngularJS به Angular با ngUpgrade

استفاده از ویژوال استودیو از راه دور  –  احراز هویت API با JSON Web Tokens و Passport

راه اندازی یک پروژه React با Parcel  –  ایجاد Swiper مانند Netflix را در Vue

ساختن یک ربات تلگرام با Laravel و BotMan  –  استفاده از map، filter، و reduce در جاوااسکریپت

چگونه می توان موتور جستجوی زمان واقعی را با Vue  –  ساختن سیستم مستندات (Documentation) با Vue و VuePress

استفاده از اشتراک زنده با کد ویژوال استودیو  –  ساخت یک مقیاس اندازه گیری قدرت رمز عبور را در React

شروع عملی GraphQL با Node.js و Express  –  ساخت یک برنامه آب و هوا در Django

نحوه نصب Discourse روی Ubuntu 18  –  تأیید رمز عبور با استفاده از درخواست فرم Laravel

نحوه نصب MySQL در CentOS 8  –  استفاده از پسوند PDO PHP برای انجام تراکنش MySQL

نصب و پیکربندی SNMP Daemon و Client در Ubuntu 18  –  نصب Linux، Nginx، MariaDB،PHP در Debian 10

 

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان – 

برچسب‌ها:, ,