در دنیای توسعه وب مدرن، ساخت یک backend قدرتمند و مقیاس پذیر برای برنامه های شما امری حیاتی است. FeathersJS یک فریم ورک سبک و منعطف برای ساخت APIهای RESTful و Realtime است. MongoDB نیز یک پایگاه داده NoSQL قدرتمند است که برای ذخیره داده های غیرساخت یافته بسیار مناسب است. در این آموزش، نحوه استفاده از این دو فناوری را برای ساخت یک backend کارآمد بررسی خواهیم کرد.
برای شروع، یک پروژه جدید FeathersJS ایجاد کنید. می توانید از Feathers CLI استفاده کنید که فرآیند ایجاد پروژه را بسیار ساده می کند.
npm install -g @feathersjs/cli
feathers generate my-app
دستور feathers generate my-app یک پروژه جدید با نام my-app ایجاد می کند. CLI از شما سوالاتی در مورد پیکربندی پروژه می پرسد. می توانید تنظیمات پیش فرض را انتخاب کنید یا تنظیمات سفارشی خود را وارد کنید.
پس از ایجاد پروژه، باید وابستگی های لازم را نصب کنید. برای این آموزش، به @feathersjs/mongodb نیاز داریم که آداپتور MongoDB برای FeathersJS است.
cd my-app
npm install @feathersjs/mongodb mongodb
در فایل config/default.json (یا config/production.json برای محیط production) اطلاعات مربوط به اتصال به MongoDB را وارد کنید.
{
"mongodb": "mongodb://localhost:27017/my-app"
}
مطمئن شوید که MongoDB در حال اجرا است و آدرس اتصال به درستی پیکربندی شده است.
ساده ترین راه برای ایجاد یک سرویس، استفاده از Feathers CLI است. با استفاده از این ابزار، می توانید سرویس ها را به صورت خودکار تولید کنید.
feathers generate service
CLI از شما سوالاتی در مورد نوع سرویس، نام سرویس و آداپتور پایگاه داده می پرسد. برای مثال، می توانید یک سرویس با نام messages ایجاد کنید که از MongoDB به عنوان پایگاه داده استفاده می کند.
پس از اجرای دستور feathers generate service، فایل های مربوط به سرویس در دایرکتوری src/services ایجاد می شوند. این فایل ها شامل موارد زیر هستند:
messages.service.js: تعریف سرویس و متدهای آن.messages.class.js: کلاس سرویس که منطق اصلی سرویس را پیاده سازی می کند.messages.hooks.js: تعریف هوک هایی که قبل و بعد از اجرای متدهای سرویس اجرا می شوند.برای اینکه سرویس شما در دسترس باشد، باید آن را در فایل src/app.js ثبت کنید.
const messages = require('./services/messages/messages.service.js');
module.exports = function (app) {
app.configure(messages);
};
برای ایجاد یک رکورد جدید در پایگاه داده، از متد create استفاده کنید.
// در فایل messages.class.js
async create(data, params) {
const { text } = data;
if (!text) {
throw new Error('Text must be provided');
}
const message = {
text,
createdAt: new Date()
};
return super.create(message, params);
}
برای خواندن یک رکورد خاص از پایگاه داده، از متد get استفاده کنید. برای خواندن تمام رکوردها، از متد find استفاده کنید.
// در فایل messages.class.js
async get(id, params) {
return super.get(id, params);
}
async find(params) {
return super.find(params);
}
برای به روزرسانی یک رکورد موجود در پایگاه داده، از متد update یا patch استفاده کنید. متد update تمام فیلدهای رکورد را جایگزین می کند، در حالی که متد patch فقط فیلدهای مشخص شده را به روزرسانی می کند.
// در فایل messages.class.js
async update(id, data, params) {
return super.update(id, data, params);
}
async patch(id, data, params) {
return super.patch(id, data, params);
}
برای حذف یک رکورد از پایگاه داده، از متد remove استفاده کنید.
// در فایل messages.class.js
async remove(id, params) {
return super.remove(id, params);
}
هوک ها توابعی هستند که قبل و بعد از اجرای متدهای سرویس اجرا می شوند. می توانید از هوک ها برای اعتبارسنجی داده ها، احراز هویت، ثبت وقایع و انجام کارهای دیگر استفاده کنید.
هوک ها در فایل messages.hooks.js تعریف می شوند.
module.exports = {
before: {
create: [
async context => {
context.data.createdAt = new Date();
return context;
}
]
}
};
در این مثال، یک هوک before برای متد create تعریف شده است. این هوک قبل از ایجاد یک رکورد جدید، فیلد createdAt را به داده ها اضافه می کند.
FeathersJS دارای پشتیبانی داخلی برای احراز هویت است. می توانید از روش های مختلف احراز هویت مانند JWT، OAuth و Local Authentication استفاده کنید.
برای استفاده از احراز هویت، باید وابستگی های لازم را نصب کنید.
npm install @feathersjs/authentication @feathersjs/authentication-jwt @feathersjs/authentication-local
احراز هویت در فایل src/app.js پیکربندی می شود.
const authentication = require('@feathersjs/authentication');
const jwt = require('@feathersjs/authentication-jwt');
const local = require('@feathersjs/authentication-local');
module.exports = function (app) {
app.configure(authentication({ secret: 'YOUR_SECRET' }));
app.configure(jwt());
app.configure(local());
app.service('authentication').hooks({
before: {
create: [
local.hooks.authenticate(['local'])
],
remove: [
hook => hook.params.jwt = false
]
}
});
};
FeathersJS یک فریم ورک سبک و منعطف برای ساخت APIهای RESTful و Realtime با استفاده از Node.js است.
MongoDB یک پایگاه داده NoSQL سندگرا است که برای ذخیره داده های غیرساخت یافته بسیار مناسب است.
می توانید از Feathers CLI برای تولید یک سرویس جدید استفاده کنید: feathers generate service.
FeathersJS دارای پشتیبانی داخلی برای احراز هویت است. می توانید از روش های مختلف احراز هویت مانند JWT، OAuth و Local Authentication استفاده کنید.
به دنبال توسعه یک backend قدرتمند و مقیاس پذیر برای پروژه خود هستید؟
تیم متخصص ما با تجربه در FeathersJS و MongoDB، آماده ارائه بهترین راهکارها برای نیازهای شماست!
درخواست مشاوره رایگانبرای اطلاعات بیشتر و مشاوره با ما تماس بگیرید:
09190994063 - 09376846692
ما منتظر تماس شما هستیم!