كيفية الخروج من برنامج Node.js

تعرف على كيفية إنهاء تطبيق Node.js بأفضل طريقة ممكنة

هناك طرق مختلفة لإنهاء تطبيق Node.js.

عند تشغيل برنامج في وحدة التحكم يمكنك إغلاقهctrl-C، ولكن ما أريد مناقشته هنا هو الخروج برمجيًا.

لنبدأ بالأكثر جذرية ، ونرى لماذا أنت أفضل حالًاليساستخدامه.

الprocessتوفر الوحدة النمطية الأساسية طريقة سهلة تتيح لك الخروج برمجيًا من برنامج Node.js:process.exit().

عندما يقوم Node.js بتشغيل هذا الخط ، يتم إجبار العملية على الإنهاء على الفور.

هذا يعني أن أي رد اتصال معلق ، أو أي طلب شبكة لا يزال قيد الإرسال ، أو أي وصول إلى نظام الملفات ، أو عمليات الكتابة إليهstdoutأوstderr- سيتم إنهاء كل شيء بشكل غير لائق على الفور.

إذا كان هذا مناسبًا لك ، فيمكنك تمرير عدد صحيح يشير إلى نظام التشغيل لكود الخروج:

process.exit(1)

افتراضيا رمز الخروج هو0مما يعني النجاح. رموز الخروج المختلفة لها معنى مختلف ، والذي قد ترغب في استخدامه في نظامك الخاص لجعل البرنامج يتواصل مع البرامج الأخرى.

يمكنك قراءة المزيد عن رموز الخروج فيhttps://nodejs.org/api/process.html#process_exit_codes

يمكنك أيضًا ضبط ملفprocess.exitCodeمنشأه:

process.exitCode = 1

وعندما ينتهي البرنامج لاحقًا ، ستعيد Node رمز الخروج هذا.

سيتم إنهاء البرنامج بأمان عند الانتهاء من جميع عمليات المعالجة.

في كثير من الأحيان مع Node نبدأ الخوادم ، مثل خادم HTTP هذا:

const express = require('express')
const app = express()

app.get(’/’, (req, res) => { res.send(‘Hi!’) })

app.listen(3000, () => console.log(‘Server ready’))

هذا البرنامج لن ينتهي أبدا. إذا اتصلتprocess.exit()، سيتم إحباط أي طلب معلق أو قيد التشغيل حاليًا. هذا هوليس لطيف.

في هذه الحالة ، تحتاج إلى إرسال إشارة SIGTERM للأمر ، والتعامل مع ذلك باستخدام معالج إشارة العملية:

ملحوظة:processلا يتطلب "طلب" ، فهو متاح تلقائيًا

const express = require('express')

const app = express()

app.get(’/’, (req, res) => { res.send(‘Hi!’) })

const server = app.listen(3000, () => console.log(‘Server ready’))

process.on(‘SIGTERM’, () => { server.close(() => { console.log(‘Process terminated’) }) })

ما هي الإشارات؟ الإشارات هي نظام اتصال بيني POSIX: إشعار يتم إرساله إلى عملية لإخطارها بحدث وقع.

SIGKILLهي الإشارات التي تخبر العملية بالإنهاء فورًا ، وتتصرف بشكل مثالي مثلprocess.exit().

SIGTERMهي الإشارات التي تخبر العملية بإنهاء برشاقة. إنها الإشارة التي يتم إرسالها من مديري العمليات مثلupstartأوsupervisordواشياء أخرى عديدة.

يمكنك إرسال هذه الإشارة من داخل البرنامج ، في وظيفة أخرى:

process.kill(process.pid, 'SIGTERM')

أو من برنامج تشغيل Node.js آخر ، أو أي تطبيق آخر يعمل في نظامك يعرف معرف العملية التي تريد إنهاؤها.

تحميل مجانيكتيب Node.js


المزيد من دروس العقدة: