مشکلات احتمالی
در این قسمت مشکلات احتمالی که ممکن است با آن برخورد کنیم را بررسی کرده و راه حل آن را نیز مشاهده میکنیم.
مشکل بالا نیامدن سرویس و ERR_OSSL_EVP
در صورتی که سرویس شما دارای ارور 502
بود و در لاگ های خود ارور OSSL
را مشاهده نمودید، میتوانید با روش زیر این مشکل را برطرف نمایید. با اضافه کردن متغیر محیطی زیر در قسمت تنظیمات سرویس خود این مشکل را برطرف نمایید.
# name = value
NODE_OPTIONS = --openssl-legacy-provider
مشکل Client does not support authentication
در صورتی که برنامه با مشکل در اتصال به پایگاه داده برخورد کرد و یا با ارور ER_NOT_SUPPORTED_AUTH_MODE
و یا Handshake.ErrorPacket
مواجه شدید میتوانید از روش زیر برای رفع این مشکل استفاده بفرمایید.
برای رفع این مشکل میبایست به جای استفاده از پکیج mysql
از پکیج mysql2
استفاده نمایید. برای این کار کافیست این پکیج را نصب نمایید:
npm install mysql2
سپس، کد اتصال خود را تغییر دهید و از mysql2
به جای mysql
استفاده کنید:
const mysql = require('mysql2');
مشکل CORS در نود جی اس
در صورت برخورد با ارور CORS No Allow Credentials و یا CORS Missing Allow Header میتوانید از راه حل زیر با توجه به framework سرویس خود استفاده نمایید.
Express
در صورتی که از Express استفاده مینمایید ابتدا میبایست cors را نصب نمایید.
npm install cors
و سپس مانند نمونه زیر میتوانید از آن استفاده نمایید:
const express = require('express');
const app = express();
const allowedOrigin = 'https://domain';
app.use((req, res, next) => {
// تنظیمات CORS
res.setHeader('Access-Control-Allow-Origin', allowedOrigin);
res.setHeader('Access-Control-Allow-Credentials', 'true');
res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
next();
});
// تعریف مسیر مورد نظر
app.get('/your-path', (req, res) => {
// ارسال پاسخ درخواست
});
app.listen(3000, () => {
console.log('سرور اجرا شد در درگاه 3000');
});
— مقالات مرتبط:
Fastify
در صورتی که از Fastify استفاده مینمایید میبایست افزونهی fastify-express و cors را به صورت زیر در برنامه خود معرفی نمایید.
await fastify.register(require('fastify-express'))
fastify.use(require('cors')())
ارور ossl
در صورتی که ارور ossl
را دریافت نمودید، میتوانید با اضافه کردن متغیر محیطی زیر در تنظیمات سرویس خود این مشکل را برطرف نمایید.
# name: value
NODE_OPTIONS : --openssl-legacy-provider
ارور Client does not support authentication
در صورت برخورد با این ارور میبایست به جای استفاده از پکیج mysql
از پکیج mysql2
استفاده نمایید. برای این کار کافیست این پکیج را نصب نمایید:
npm install mysql2
سپس، کد اتصال خود را تغییر دهید و از mysql2
به جای mysql
استفاده کنید:
const mysql = require('mysql2');