"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو نودجس

ما هو نودجس

تم النشر بتاريخ 2024-08-01
تصفح:896

What is Nodejs

Nodejs هو وقت تشغيل جافا سكريبت. هذا يعني أن Nodejs هو برنامج يسمح لك بتشغيل JavaScript خارج المتصفح. ونتيجة لذلك، يمكن للمرء تطوير تطبيقات الواجهة الخلفية باستخدام Nodejs. الآن، هذا لا يقتصر على الواجهة الخلفية. يمكننا بناء تطبيقات سطح المكتب، وإنترنت الأشياء، والتطبيقات السحابية، على سبيل المثال لا الحصر. Nodejs عبارة عن منصة مشتركة. البرنامج نفسه يعمل بنظام التشغيل Linux وWindows وmacOS.

لماذا يجب على المرء استخدام Nodejs

يأتي Nodejs مع بعض المزايا والتي تشمل على سبيل المثال لا الحصر:

  • الإدخال/الإخراج غير المحظور
  • غير متزامن
  • القابلة للتطوير
  • قيادة الأحداث
  • لديه زمن وصول منخفض
  • يحتوي على ترابط
  • يمكن استخدامها في كل مكان وفي أي مكان
  • وجود مجتمع كبير

كما يقول المثل، العوائد الفورية تعني إزعاجات طويلة المدى. الجانب السلبي هنا هو جافا سكريبت (بالمناسبة، أنا أحب جافا سكريبت) وفي بعض الأحيان لا أصمم النظام الذي تريد بناءه مع وضع التوسع في الاعتبار. مرة أخرى، ليست Nodejs هي التي تستخدم Nodejs، بل الأدوات والبشر.

يمكنك قراءة المزيد عن العقدة هنا

تثبيت

الأشخاص في Nodejs أذكياء، احترموا ذلك. لقد جعلوا التثبيت أسهل بالنسبة لي ولكم. يمكن للأشخاص الذين ليس لديهم المعرفة التقنية إعداد Nodejs والبدء في كتابة بعض التعليمات البرمجية. لقد قدموا خيارات يمكن للمرء استخدامها:

  • مدير الحزم
  • أداة تثبيت مسبقة الصنع
  • ثنائي تم إنشاؤه مسبقًا
  • والتثبيت عن طريق بناء الكود المصدري

من بين هؤلاء الثلاثة الأوائل ودودون. لذا اختر أيًا منها. دعنا نتوجه إلى download-nodejs و"دع العقدة هناك".

اعتبارًا من هذه اللحظة، إصدار العقدة الحالي هو 22 وLTS (يتمتع بدعم طويل المدى) هو 20.

أنا أستخدم جهاز Linux، لذا سأقوم بالتثبيت باستخدام nvm (مدير إصدار العقدة). وهذا يعطينا الإحساس بأنه يمكننا الحصول على عدة إصدارات من العقدة. سيعمل هذا خارج الصندوق لنظام التشغيل macOS أيضًا.

# installs nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# download and install Node.js (you may need to restart the terminal)
nvm install 20

# verifies the right Node.js version is in the environment
node -v # should print `v20.15.1`

# verifies the right npm version is in the environment
npm -v # should print `10.7.0`

هذا هو نفس البرنامج النصي الموجود على منصة Nodejs (موقع الويب). لذلك لا ينبغي أن يكون هناك أي مشاكل عند تشغيل هذه الأوامر.

بالنسبة لنظام التشغيل Windows، سيكون هناك شيء مشابه

# installs fnm (Fast Node Manager)
winget install Schniz.fnm

# download and install Node.js
fnm use --install-if-missing 20

# verifies the right Node.js version is in the environment
node -v # should print `v20.15.1`

# verifies the right npm version is in the environment
npm -v # should print `10.7.0`

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

# verifies the right Node.js version is in the environment
node -v # should print `v20.15.1`

# verifies the right npm version is in the environment
npm -v # should print `10.7.0`

NVM

لم يكن nvm خيارًا لنظام التشغيل Windows أثناء التثبيت ولكن يمكن تثبيته هنا، ومعرفة القليل عنه سيكون تعليميًا.

نقوم بإدراج كافة الإصدارات الأخرى من العقدة التي لدينا، باستخدام الأمر، قائمة nvm

username@computer-name:~$ nvm list
->     v18.18.0
default -> 18.18.0 (-> v18.18.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v18.18.0) (default)
stable -> 18.18 (-> v18.18.0) (default)
lts/* -> lts/hydrogen (-> v18.18.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.18.0

مما سبق، يمكننا أن نقول أن v18.18.0 هو العقدة التي أقوم بتشغيلها.

يمكننا تثبيت إصدار آخر مثل 20 LTS، باستخدام nvm install 20

username@computer-name:~$ nvm install 20
Downloading and installing node v20.15.1...
Downloading https://nodejs.org/dist/v20.15.1/node-v20.15.1-linux-x64.tar.xz...
######################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.15.1 (npm v10.7.0)

تم التبديل تلقائيًا إلى الإصدار 20.15.1. وهو أحدث LTS.

الآن يمكنني التبديل إلى إصدار العقدة المرغوب فيه باستخدام nvm 18

username@computer-name:~$ nvm use 18
Now using node v18.18.0 (npm v10.8.2)
username@computer-name:~$
username@computer-name:~$ node -v
v18.18.0

وسيكون ذلك على nvm

الآلية الوقائية الوطنية

npm هو مدير حزم العقدة. إذا كنت تتساءل عن ماهية الحزمة، فلا تقلق. الحزمة هي نفس المكتبة. يمكن استخدام بعض مقتطفات التعليمات البرمجية أو البرامج التي كتبها شخص آخر في برنامجنا للقيام بشيء ما. لذلك فإن الحزمة تهدف إلى حل مشكلة وكل ذلك. يساعدنا npm ومديرو حزم العقد الأخرى مثل الغزل، وpnpm، والكعك وغيرهم في إدارة الحزم التي نقوم بتثبيتها لمشروعنا. سنركز فقط على npm هنا.

لبدء مشروع العقدة (وليس فقط جافا سكريبت)، نحتاج إلى استخدام حزم العقدة. أعني، هناك أوقات نقوم فيها بتطوير برنامج كامل دون الاعتماد على مكتبات الطرف الثالث (البرامج التي لم نكتبها ولم نأتي مع Nodejs).

يمكننا إنشاء تطبيق Nodejs عن طريق إنشاء ملف عقدة packege.json باستخدام الأمر npm init. قم بتنفيذ npm init --help لقراءة المزيد حول npm init. من الأفضل عادةً بدء تشغيل برنامج العقدة في بيئة جديدة (مجلد). لذلك سوف نقوم بإنشاء واحدة ونطلق عليها اسم helloworld. سأستخدم المحطة.

username@computer-name:~$ mkdir helloworld
username@computer-name:~$ cd helloworld/
username@computer-name:~/helloworld$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items and tries to guess sensible defaults.

See `npm help init` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (helloworld) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /home/username/helloworld/package.json:

{
  "name": "helloworld",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
 },
  "author": "",
  "license": "ISC",
  "description": ""
}

Is this OK? (yes) 

username@computer-name:~/helloworld$ 
  • لقد قمت بإنشاء مجلد باسم mkdir helloworld
  • لقد قمت بالتغيير إلى مجلد helloworld، القرص المضغوط helloworld
  • ثم أقوم بتهيئة العقدة، npm init

سيكون بمثابة معالج التثبيت، الذي يرشدك خلال خطوات التكوين. لاحظ أنه يمكنك تحديثه لاحقًا. كل ما عليك فعله هو الضغط على ENTER، ENTER حتى تنتهي العملية برمتها. عندما تفتح المجلد helloworld في مستكشف الملفات، سترى ملفًا جديدًا، package.json بمحتواه المشابه للإخراج أعلاه.

{
  "name": "helloworld",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
 },
  "author": "",
  "license": "ISC",
  "description": ""
}

هذا التكوين بديهي. يخبرك باسم المشروع (أو البرنامج) الذي نحن على وشك إنشائه. ويستخدم اسم المجلد الأصلي كاسم المشروع. أثناء عملية تهيئة العقدة (المشروع)، كان بإمكاننا إعطاؤها اسمًا وحتى توفير قيم للحقول الأخرى. هذا هو المكان الذي كنا نضغط فيه على ENTER، ENTER، …

هناك طريقة أخرى للقيام بذلك دون الضغط على ENTER، ENTER، …، وهي القيام بـ npm init -y . -y، يعني نعم، استخدم القيم الافتراضية.

في المقام الأول، حزم العقدة موجودة على npmjs.com. لنفترض أننا نريد تثبيت مكتبة Expressjs. هذه هي كيفية البحث عن Express على npmjs. ستخبرك المستندات بكيفية تثبيته باستخدام الأمر npm i Express.

username@computer-name:~/helloworld$ npm i express

added 64 packages, and audited 65 packages in 4s

12 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

يعني التثبيت. تكتبه كـ npm install Express. سيتم تحديث package.json مع إضافة الحزمة.

{
  "name": "helloworld",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
 },
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "express": "^4.19.2"
 }
}

الآن، لدينا تبعية جديدة.

لاحظ أنه لن يتم إنشاء أي ملف أو مجلد. عندما نفعل ls

username@computer-name:~/helloworld$ ls
node_modules  package.json  package-lock.json
  • لديناNode_modules، وهو مجلد يحتوي على التبعيات (الحزم) التي سيستخدمها برنامجنا.
  • لدينا أيضًا package-lock.json، والذي يعمل كملف قفل، ومن هنا جاء الاسم. فهو يلتقط الإصدارات الدقيقة للحزمة التي نقوم بتثبيتها واستخدامها لإنشاء برامجنا. بهذه الطريقة، يمكن استخدام نفس الحزم وإصداراتها المحددة طوال الوقت نظرًا لأن الإصدارات المختلفة من نفس الحزمة قد تتصرف بشكل مختلف.

على أي حال، يمكننا تثبيت الحزم بثلاث طرق أو بالأحرى البيئة. هذا هو المكان الذي تريد استخدام الحزمة فيه.

  • عام: سيكون هذا متاحًا لجميع برامج العقدة لديك. عادةً، قم بتثبيت الحزم عالميًا عندما تكون برامج ذات أغراض عامة مثل أدوات سطر الأوامر المساعدة.
  • التطوير: هذا مخصص للتطوير فقط ولا يتم استخدامه على بعض الخوادم البعيدة نظرًا لأن الخادم البعيد سيكون له طريقته في التعامل مع حالة استخدام تلك التبعية. عادةً ما تكون هذه مكتبات مساعدة تعمل مع مكتبات أخرى لتحقيق غرض ما. وقد تشمل هذه على سبيل المثال لا الحصر eslint وprettier وdotenv وما إلى ذلك.
  • الإنتاج: هذه حزمة يعتمد عليها تطبيقنا بشكل أساسي في العمل. مثل السريع.

يمكننا القيام به،

  • npm i -g package-names ... لتثبيت الحزمة عالميًا
  • npm i - أسماء الحزم العالمية ... لتثبيت الحزمة عالميًا
  • npm i -S package-names ... لتثبيت الحزمة (للإنتاج)
  • npm i --حفظ أسماء الحزم ... لتثبيت الحزمة (للإنتاج)
  • npm i -D package-names ... لتثبيت الحزمة (للتطوير، لن تحتاج إليها لتشغيل تطبيقنا)
  • npm i --save-dev package-names ... لتثبيت الحزمة (للتطوير، لن تحتاج إليها لتشغيل تطبيقنا)
  • npm إلغاء تثبيت أسماء الحزم ... لإزالة الحزمة أو إلغاء تثبيتها

هذا هو كل ما سنحتاجه لإدارة حزمنا.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/otumianempire/what-is-nodejs-4h10?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3