שלום, יש לי קובץ node js שמכיל מספר פונקציות, ואני רוצה לפצל כל פונקציה (היינו כל פעילות מסויימת) לקובץ נפרד בשביל שיהיה מסודר, וכן להעביר את הראוטרים לקובץ אחד, שממנו יופעלו כל הקבצים,
חלק מהפונקציות נקראות באמצעות הדפדפן, וחלק מימות המשיח עם הספריה, והסתבכתי בענין.
אני מצרף קטע עם דוגמה בכדי שיהיה קל להבין למה אני מתכוון,
הראוטרים של chk וShare הם מודולי API של ימות שמשתמשים בספרייה, והראוטר הכללי וYemotLogin משמשים לגישה דרך הדפדפן.
בנוסף, אני רוצה להיות מסוגל לקרוא לפונקציה שנקראת licenseVerification מכל הקבצים ללא שאצטרך להעתיק אותה לכל אחד.
אשמח לעזרה והסבר מה אני צריך להשאיר בקובץ הראשי של הראוטרים, ומה אני צריך לכלול בכל קובץ שמשתמש בספרייה לימות המשיח, ומה בפונקציות הרגילות.
import { YemotRouter } from 'yemot-router2';
import express from 'express';
import axios from 'axios';
import fs from 'fs';
import { promises as fsPromises } from 'fs';
export const app = express();
export const router = YemotRouter({
printLog: true,
uncaughtErrorHandler: (error, call) => {
console.log(`Uncaught error from ${call.phone}. error stack: ${error.stack}`);
return call.id_list_message([{ type: 'text', data: 'השרת נתקל בשגיאה פנה למנהל' }]);
}
});
router.post('/chk', callHandler);
router.post('/Share', sharing);
app.get('/YemotLogin', (req, res) => yemotLogin(req, res));
app.get('/', function (req, res) {
res.send('אין גישה');
});
app.use(express.urlencoded({ extended: true }));
app.use(router);
const port = 3000;
app.listen(port, () => console.log(`The express server is now running and listening on port ${port}`));
const url_yemot_api = 'https://www.call2all.co.il/ym/api/';
async function yemotLogin(req, res) {
console.log('yemotLogin');
res.send('Blocked');
}
function licenseVerification(apiDID) {
if (apiDID) {
console.log('status: ', 'true');
return true;
} else {
console.log('status: ', 'blocked');
return false;
}
}
async function sharing(call) {
await call.id_list_message([{
type: 'text',
data: 'הפעולה הושלמה'
}]);
}
async function callHandler(call) {
if (await licenseVerification(call.ApiDID) === true) {
return call.id_list_message([{
type: 'text',
data: 'גישה מאופשרת'
}]);
} else {
return call.id_list_message([{
type: 'text',
data: 'המספר שלכם חסום לגישה'
}]);
}
}