متخصصین علوم رایانه کشور

Learning MEAN Framework
متخصصین علوم رایانه کشور

۸ مطلب با موضوع «NODE.JS» ثبت شده است

۱۱
دی

دوستان گلم، از آنجایی که تصمیم دارم از این درس به بعد، آموزش Package های مفید و پرکاربرد Node.js را آموزش دهم، تصمیم گرفتم مطلبی آماده کنم که برای شروع هر یک از آموزش‌های آتی الزامی است.

یکی از مهمترین Package های مربوط به Node.js، پکیج Express.js می‌باشد. ولی یادمان باشد که تمامی Package های مربوط به Node.js، به کمک خود Node.js ایجاد شده‌اند! پس تصور اینکه ما می‌توانیم با Express.js کارهایی انجام دهیم که با Node.js امکان‌پذیر نمی‌باشد، تصوری کاملا نادرست می‌باشد. به طور کلی، استفاده از Package هایی مانند Express.js، صرفا کار را برای ما تسهیل می‌کنند و به جای اینکه ما کدهای زیادی نوشته و یا اصطلاحا چرخ را از اول اختراع نماییم، کلاس‌ها و توابعی را در اختیار ما قرار می‌دهند که باعث می‌شوند ما در هنگام کدنویسی و به قول آمریکایی‌ها، Happy باشیم...

بسیار خوب، برای شروع هر پروژه واقعی و یا آموزشی، باید موارد ذیل را به ترتیب انجام دهید:

۱. وارد محیط Windows Command Prompt می‌شویم.

۲. در هر درایو و یا پوشه‌ای که می‌خواهیم، یک پوشه ایجاد کرده و وارد آن می‌شویم.

۳. دستور ذیل را اجرا کرده تا از ما سوالاتی در خصوص پروژه پرسیده شود. در انتهای کار فایلی به نام package.json ایجاد می‌گردد:

?> npm init
name: some_name
version: 1.0.0
description: Learning Something
entry point: app.js
test command:
git repository:
keywords: Learning Something
author: Mr. Dariush Tasdighi
license: ISC
yes

توجه: در قسمت name، باید از حروف کوچک استفاده کرده و حق استفاده از فاصله خالی (Spacebar) را نداریم!

۴. با دستور ذیل، پکیج (ماژول) Express.js را در پوشه جاری نصب می‌کنیم:

?> npm install express --save

توجه: save-- برای این نوشته می‌شود که در داخل فایل package.json، قید گردد که پروژه جاری از Express.js استفاده می‌کند. ضمنا دقت داشته باشید پس از اجرای دستور فوق، در پوشه جاری، پوشه‌ای به نام node_modules ایجاد شده و در داخل آن تمامی ماژول‌های مربوط به Express.js و نیز ماژول‌هایی که Express.js به آنها نیاز دارد، قرار می‌گیرند.

۵. قبل از اینکه وارد محیط Visual Studio Code و یا به طور خلاصه (مخفف) VSCode شویم، برای اینکه در این محیط IntelliSense مناسبی داشته باشیم ابتدا دستور ذیل را اجرا می‌کنیم:

? npm install tsd -g

۶. پس از دستور فوق، دو دستور ذیل را اجرا کرده تا IntelliSense های مربوط به Node و نیز Express دانلود شده و در پوشه‌ای به نام typing قرار گیرند:

?> tsd install node --save
?> tsd install express --save

۵. حال با دستور ذیل، وارد محیط Visual Studio Code یا به طور مخفف VSCode می‌شویم:

?> code .

۶. برنامه را با استفاده از کلیدمیان‌بر، F5، اجرا می‌کنیم. در اولین زمان اجرا، و در کادر Select Debug Environment، از ما سوالی پرسیده می‌شود که باید گزینه Node.js را انتخاب کنیم. با این انتخاب، پوشه‌ای به نام vscode. ایجاد شده و در داخل آن فایلی به نام launch.js ایجاد می‌گردد.

۷. حال فایلی به نام app.js در Root پروژه ایجاد کرده و اقدام به برنامه‌نویسی نمایید.

از این پس، هرگاه مطلب آموزشی در خصوص Node.js مطرح گردد، فرض بر آن است که شما تمامی موارد فوق را به دقت و به ترتیب انجام داده‌اید...

  • داریوش تصدیقی
۲۴
آذر

نسخه: ۱.6

دوستان خوب و صمیمی، در این مطلب، می‌خواهم منابع مفیدی که در طی این دو سال، جستجو کرده و به کار گرفته‌ام را، به شما عزیزان معرفی نمایم. امیدوارم که مورد توجه و عنایت قرار بگیرد.


محیط برنامه‌نویسی: Visual Studio Code - نشانی: https://code.visualstudio.com

- محیط برنامه‌نویسی به صورت آنلاین: Cloud 9 IDE - نشانی:‌https://c9.io

Node.js - نشانی: https://nodejs.org/en

بانک اطلاعاتی: MongoDB - نشانی:‌ https://www.mongodb.org - https://www.mongodb.com

- لینک مستقیم به قسمت دانلود: https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl

سایتی که ۵۰۰ مگابایت فضای رایگان، برای هاست کردن بانک‌های اطلاعاتی MongoDB به شما تخصیص می‌دهد: MongoLab - نشانی: https://mongolab.com

ابزاری که مانند SQL Server Management Studio عمل کرده و برای بانک‌های اطلاعاتی MongoDB مورد استفاده قرار می‌گیرد: RoboMongo - نشانی: http://robomongo.org

مدیریت سورس‌کدها: Git (گیت) - نشانی: http://git-scm.com

بهترین ابزار Visual، برای استفاده از Git (گیت): SourceTree - نشانی: https://www.sourcetreeapp.com

بهترین هاست، برای درج سورس‌کدها به صورت Public (عمومی): GitHub - نشانی: https://github.com

بهترین هاست، برای درج سورس‌کدها به صورت Private (خصوصی): VisualStudio - نشانی:‌ https://www.visualstudio.com

ابزاری برای Google Chrome در جهت ارسال داده به سایت: PostMan - نشانی: http://www.getpostman.com

ابزاری برای رصد کردن ترافیک و Packet های شبکه: Fiddler - نشانی: http://fiddler2.com


پکیج‌ها و ماژول‌های مهم و کاربردی که معمولا در محیط Node.js به آنها نیاز داریم:


پکیج‌هایی که توصیه می‌شود، به صورت Global نصب شوند:

TSD
https://www.npmjs.com/package/tsd
http://definitelytyped.org/tsd
https://github.com/DefinitelyTyped/DefinitelyTyped

Express Generator
https://www.npmjs.com/package/express-generator
http://expressjs.com/en/starter/generator.html

Nodemon
https://www.npmjs.com/package/nodemon
http://nodemon.io

Yeoman
https://www.npmjs.com/package/yo
http://yeoman.io

Bower
https://www.npmjs.com/package/bower
http://bower.io

Grunt
https://www.npmjs.com/package/grunt-cli
http://gruntjs.com

Angular Generator
https://www.npmjs.com/package/generator-angular

Karma Generator
https://www.npmjs.com/package/generator-karma

پکیج‌هایی که توصیه می‌شود، به صورت Local نصب شوند:

Express.js
https://www.npmjs.com/package/express
http://expressjs.com/en/index.html

Underscore.js
https://www.npmjs.com/package/underscore
http://underscorejs.org

Colors
https://www.npmjs.com/package/colors

Body Parser
https://www.npmjs.com/package/body-parser

Jade
https://www.npmjs.com/package/jade
http://jade-lang.com

Socket IO
https://www.npmjs.com/package/socket.io
http://socket.io

MongoDB
https://www.npmjs.com/package/mongodb

Mongoose
https://www.npmjs.com/package/mongoose
http://mongoosejs.com

Mocha
https://www.npmjs.com/package/mocha

Morgan
https://www.npmjs.com/package/morgan

Cookie Parser
https://www.npmjs.com/package/cookie-parser

Passport
https://www.npmjs.com/package/passport
http://passportjs.org

Node Mailer
https://www.npmjs.com/package/nodemailer

Bcrypt
https://www.npmjs.com/package/bcrypt
https://www.npmjs.com/package/bcrypt-nodejs

Json Web Token
https://www.npmjs.com/package/jsonwebtoken

برای اطلاع از Global NPM Package هایی که نسخه جدیدی برای آنها وجود دارد، از دستور ذیل استفاده می‌کنیم:

npm outdated -g --depth=0

برای به روز رسانی تمامی NPM Package هایی که به صورت Global نصب شده‌اند، از دستور ذیل استفاده می‌کنیم:

npm update -g

برای اطلاع از Local NPM Package هایی که نسخه جدیدی برای آنها وجود دارد، از دستور ذیل استفاده می‌کنیم:

npm outdated

برای به روز رسانی تمامی NPM Package هایی که به صورت Local نصب شده‌اند، از دستور ذیل استفاده می‌کنیم:

npm update

دو نکته بسیار مهم:

۱. قبل از اقدام به نصب و یا به روز رسانی NPM Package ها، حتما به سایت Node مراجعه کرده و آخرین نسخه آنرا دریافت و نصب نمایید.

۲. با توجه به اینکه برنامه NPM برای نصب NPM Package ها، به صورت پیش‌فرض از پروتکل https استفاده می‌کند، و به لطف مخابرات کشور عزیزمان، که همیشه ما را مورد لطف و عنایت خود داشته و دارد! نصب اکثر پکیج‌ها با خطا مواجه می‌شود. لذا با استفاده از دستور ذیل، شما به برنامه NPM‌ اعلام می‌کنید، که به جای استفاده از پروتکل https، از پروتکل http برای نصب استفاده نماید:

npm config -g set registry http://registry.npmjs.org/

انشاءالله در رابطه با هر یک از Package های فوق، توضیحات مبسوطی خواهم داد.

دوستان خوبم، لطفا در صورتی که لینکی به درستی کار نمی‌کرد، به من اطلاع دهید...

  • داریوش تصدیقی
۲۲
آذر
موضوع:‌ آموزش Callback Pattern - Creating Asynchronous Function
ویرایش:‌ ۱.۱

اجازه دهید مجددا بخشی از سورس‌کدی که در قسمت سوم آموزشی،‌ نوشته‌ایم را بررسی نماییم:

server.listen(3000);
console.log('Web server is listening...');

این کد، کد مناسبی نمی‌باشد! ولی علت چیست؟ واقعیت آن است که دستورات JavaScript چه در سمت Client و چه در سمت Server، به ترتیب اجرا می‌شوند و بسیاری از دستورات پیش‌فرض، مانند دستور listen، به صورت Async اجرا می‌شوند. این بدان معنی است که پس از فرآخوانی دستوری مانند server.listen، سیستم در این خط دچار وقفه نشده و به سرعت سراغ دستور بعدی می‌رود. حال فرض کنید که اجرای دستور listen، به هر دلیلی، پنج ثانیه به طول بیانجامد. در این صورت شما پیام Web server is listening را پنج ثانیه قبل از راه‌اندازی واقعی و در محیط Console خواهید دید! که این اصلا درست نمی‌باشد. از آن بدتر! زمانی است که راه‌اندازی Server به مشکل برخورد کرده و اصلا راه اندازی نشود، در این صورت باز هم شما پیام مذکور را خواهید دید که سرور به درستی راه‌اندازی شده و منتظر درخواست از طرف Client می‌باشد!
با توجه به نکات فوق، به این نتیجه می‌رسیم که باید دستورات فوق را به گونه دیگری بنویسیم. حال به دستورات ذیل توجه نمایید:

server.listen(3000, function(error) {

    if(error != null) {
        console.log('Web server can't listen! - ' + error);
        return;
    }

    console.log('Web server is listening...');
});

کد فوق، یک کد هوشمندانه و مناسب می‌باشد! به محض اینکه سیستم، به دستور server.listen می‌رسد، متوجه می‌شود که باید این دستور را اجرا کند و اقدام به اجرای آن می‌کند. ولی معطل اجرای آن نمی‌شود! و به سرعت، به سراغ دستورات بعد از server.listen خواهد رفت. ولی هرگاه عملیات مربوط به server.listen (چه با خطا و یا بدون خطا) خاتمه یابد، وارد تابع درونی server.listen می‌شود. در صورتی که کار با موفقیت صورت نگرفته باشد، شیء error مخالف null بوده، که در این صورت، پیام خطا در محیط کنسول نمایش داده می‌شود و در صورتی که عملیات با موفقیت صورت گرفته باشد، پیام Web server is listening، در محیط کنسول نمایش داده خواهد شد.
به تابع درونی server.listen، اصطلاحا Callback Function می‌گویند، و به خود تابع listen، یک تابع Asynchronous اطلاق می‌شود و ما به کرات از اینگونه توابع، در هنگام برنامه‌نویسی در محیط‌های Client و یا Server برخورد خواهیم کرد.
ولی چیزی که از مطلب فوق اهمیت بیشتری دارد، آن است که یاد بگیریم، چگونه تفکر و یا الگوی Callback را پیاده‌سازی نماییم، و چگونه اقدام به نوشتن یک توابع Asynchronous نماییم. فرض کنید که ما یک یا چند دستور سنگین داریم که اجرای آنها زمان زیادی را به خود اختصاص می‌دهند. به عنوان مثال فرض کنید، می‌خواهیم یک Data Conversion سنگین انجام دهیم، که به طور تقریبی، ۶۰ ثانیه به طول می‌انجامد. توجه داشته باشید که در محیط‌های Client‌ و یا Server، اجرای دستورات JavaScript، فقط با یک Thread انجام می‌شوند. لذا اگر یکی از کاربران سیستم، باعث شود که اجرای برنامه، به دستورات سنگینی برخورد نماید، متاسفانه تمام کاربران سایت، به مدت ۶۰ ثانیه معطل اجرای دستورات مختص به خود خواهند شد، و این یک فاجعه است! لذا می‌خواهیم الگویی را یاد بگیریم که مناسب اینگونه شرایط است.
برای این منظور، ابتدا دستوراتی که اجرای آنها زمان زیادی را به خود اختصاص می‌دهند را در داخل یک تابع جداگانه‌ای می‌نویسیم. در مثال ذیل، فرض بر این است که تابع مذکور، دارای پارامتر ورودی خاصی نمی‌باشد. در این حالت فقط یک پارامتر ورودی به نام callback، برای تابع مذکور، تعریف می‌کنیم. دقت داشته باشید، در صورتی که بخواهیم برای تابع مذکور، به عنوان مثال، دو پارامتر a و b ارسال نماییم، باید تعداد پارامترهای تابع مذکور را برابر سه پارامتر تعریف نماییم و باید پارامتر آخر آن callback باشد.
پس از نوشتن تابع مذکور، در درون آن از دستور setTimeout استفاده می‌کنیم. دقت داشته باشید که این تابع، کلید Callback Pattern می‌باشد. در شرایط عادی،‌ از این تابع، زمانی استفاده می‌کنیم که بخواهیم دستور یا دستوراتی را پس از گذشت چند میلی ثانیه، اجرا نماییم. ولی در حال حاضر، نیت و هدف دیگری داریم! با استفاده از این تابع، می‌توانیم الگوی Callback را پیاده‌سازی نماییم. لذا در داخل تابع مذکور، تابع setTimeout را نوشته و زمان اجرای آنرا، برابر صفر در نظر می‌گیریم.
function calculateSalary(callback) {
setTimeout(function () {

// Do some process(es) for calculating salary.
for (var index = 1; index <= 1000000000; index++) {
}

callback();
}, 0);
}
در دستورات فوق، فرض بر آن است که دستور for، همان دستوری است که اجرای آن زمان زیادی را به خود اختصاص می‌دهد.
حال زمانی که می‌خواهیم دستورات سنگین و پر هزینه از نظر زمانی مذکور را اجرا نماییم، به صورت ذیل عمل می‌کنیم:

calculateSalary(function () {
console.log('Salary Calculation Done!');
});

حال نمونه دیگری را با هم بررسی می‌کنیم. نمونه‌ای که در آن، تابع مربوطه، به عنوان مثال، دارای دو پارامتر ورودی a‌ و b‌ می‌باشد.

function calculateSalary(a, b, callback) {
setTimeout(function () {

// Do some process(es) for calculating salary.
for (var index = 1; index <= 1000000 * a * b; index++) {
}

callback();
}, 0);
}

calculateSalary(5, 10, function () {
console.log('Salary Calculation Done!');
});


در دو نمونه فوق، دو مشکل اساسی داریم:
۱. در صورتی که اجرای تابع، به مشکلی برخورد کند، راه حل مناسبی پیشنهاد نشده است!
۲. در صورتی که نیاز داشته باشیم که تابع مذکور خروجی در اختیار ما قرار دهد نیز راه حل مناسبی پیشنهاد نشده است!
حال اجازه دهید که بهترین و هوشمندانه‌ترین راه حل را با هم و به کمک مثال ذیل پی می‌گیریم. در مثال ذیل، اولا برای تابع خود، پارامترهای ورودی داریم به نام‌های a و b در نظر گرفته‌ایم، و نیز، در صورت بروز خطا در زمان اجرای تابع مذکور، روش علمی و مناسبی ارایه کرده‌ایم و ثالثا، مقداری را به عنوان نتیجه و یا خروجی تابع ایجاد کرده و برمی‌گردانیم:

function division(a, b, callback) {
setTimeout(function () {

// Do some process(es) for calculating salary.
for (var index = 1; index <= 1000000000; index++) {
}

if (b == 0) {
var error =
new Error('Division by zero!');

callback(error, null);
}
else {
var result = a / b;

callback(null, result);
}
}, 0);
}

division(10, 2, function (error, result) {

if (error != null) {
console.log(error);
}
else {
console.log('Result: ' + result);
}
});

division(5, 0, function (error, result) {

if (error != null) {
console.log(error.message);
}
else {
console.log('Result: ' + result);
}
});

console.log('This message will be shown Immediately!');

  • داریوش تصدیقی
۱۰
آذر

درسی که امروز برای شما دوستان در نظر گرفته‌ایم، شاید از نظر زمانی، کمی زود باشد! ولی تجربه نشان داده است، در کلاس‌های آموزشی، به دلیل هیجان‌انگیز بودن موضوع، ارایه این مطلب آموزشی، بسیار مفید و جذاب بوده، و انگیزه نوآموزان را برای یادگیری Node.js دو چندان می‌کند.

در این درس می‌خواهیم با استفاده از محیط Visual Studio Code و با استفاده از Node.js، اقدام به راه‌اندازی یک Web Server ساده نماییم. برای این منظور، ابتدا وارد محیط Windows Command Prompt شده و مجددا در پوشه‌ای که برای این سری از آموزش‌ها در نظر گرفته‌ایم، پوشه‌ای به نام Learn_1030 ایجاد کرده، وارد آن شده، و از طریق دستور ذیل وارد محیط Visual Studio Code می‌شویم:

?\Learn_1030>Code .

پس از ورود به محیط Visual Studio Code، از پنجره EXPLORE، گزینه New File را انتخاب نموده و فایلی به نام app.js ایجاد می‌نماییم. حال دستورات ذیل را در داخل این فایل (app.js) می‌نویسیم. نگران دستورات ذیل نباشید! یکایک دستورات ذیل و فلسفه استفاده از هر کدام را در این درس و در درس‌های آتی فرا خواهید گرفت:

var http = require('http');

var server = http.createServer(function (request, response) {
response.writeHead(200, { 'Content-Type': 'text/plain' });
response.write('<b>Hello, World!</b>');
response.end();
});

server.listen(3000);
console.log('Web server is listening...');

قبل از آنکه دستورات فوق را یک به یک توضیح دهیم، ابتدا برنامه را اجرا نموده تا پیام Web server is listening، در پنجره Console محیط Visual Studio Code ظاهر گردد. حال از طریق یک مرورگر (Browser) مانند Google Chrome، وارد نشانی ذیل می‌شویم:

http://localhost:3000

شاید باورش کمی سخت باشد! ولی ما با همین چند دستور ساده فوق، نه تنها یک سایت ایجاد کرده‌ایم، بلکه یک Web Server مانند IIS و یا Apache Server ایجاد کرده‌ایم! به همین دلیل، شاید این جمله که Node.js صرفا یک Web Server‌ است، کمی بی انصافی باشد! در واقع Node.js یک Server است! که می‌توان در درون آن، به راحتی یک یا چند Web Server و یا سرویس‌های دیگر را ایجاد و راه‌اندازی نمود...

و اما توضیح دستورات فوق...

در اولین خط دستورات فوق، شما با دستور require مواجه می‌شوید. این دستور که بسیار شبیه دستور Add References در محیط کلاسیک Visual Studio می‌باشد، ما را قادر می‌سازد تا از Module دیگری در داخل Module جاری خود استفاده نماییم.  

در Node.js، هر پروژه‌ای که ایجاد می‌کنیم، اصطلاحا یک Module نامیده می‌شود، و در هر Module نیز ممکن است از Module های دیگری استفاده گردد:

۱. Module هایی که خودمان در داخل Module‌ یا پروژه اصلی ایجاد می‌کنیم. (در درس‌های بعد، طریقه ایجاد انواع Module ها در داخل پروژه، آموزش داده خواهند شد)

۲. Module هایی که متعلق به خود Node.js می‌باشند. (مانند http)

۳. Module هایی که دیگران (اشخاص حقیقی و حقوقی) آنها را ایجاد کرده‌اند، در داخل سایت http://www.npmjs.com‌ قرار داده‌اند، و ما از آنها در داخل Module های خود استفاده می‌کنیم. (در درس‌های آتی، ابتدا به معرفی Module های معروفی که برای ایجاد یک پروژه حرفه‌ای به آنها نیاز داریم، خواهیم پرداخت، و سپس طریقه دانلود و درج آنها به پروژه را به تفصیل توضیح خواهیم داد)

یکی از Module های اساسی در Node.js، ماژول http می‌باشد، که با استفاده از آن می‌توانیم به سادگی یک Web Server‌ ایجاد نماییم.

در خط بعد، و با استفاده از دستور http.createServer، یک Web Server ایجاد می‌کنیم، و به Web Server می‌فهمانیم، در صورتی که درخواستی به سمتش ارسال گردید، باید تابع روبروی آنر اجرا نماید. دقت داشته باشید که با استفاده از دستور مذکور، صرفا Web Server ایجاد شده ولی راه‌اندازی نمی‌گردد! بلکه با استفاده از دستور (3000)server.listen، وب سرور راه‌اندازی شده و گوش به زنگ درخواست‌های آتی می‌باشد.

در تابع درونی createServer، دو پارامتر ورودی request و response وجود دارد. با استفاده از پارامتر request می‌توانیم شناسایی کنیم که چه نوع درخواستی از Web Server صورت گرفته استِ، و با استفاده از پارامتر response می‌توانیم هر آنچه تمایل داریم (اعم از فایل، صفحه، متن، json و غیره...) به سمت درخواست کننده (Client) ارسال نماییم.

در داخل تابع درونی createServer، ابتدا عبارتی را به سمت درخواست کننده (مثلا مرورگر) ارسال می‌کنیم، که در داخل آن، مشخص شده است که همه چیز در سمت Server، مرتب بوده و هیچ مشکلی پیش نیامده است. عدد ۲۰۰ بیانگر این موضوع می‌باشد. مقدار text/plain، به عنوان Content Type‌ یا اصطلاحا Mime Type، به درخواست کننده می‌فهماند، هر آنچه از طریق Server به سمتش ارسال می‌گردد، باید به صورت یک متن عادی نمایش دهد! پس به همین دلیل، وقتی ما از طریق مرورگر، نشانی http://localhost:3000 را هدف قرار دادیم، عبارت !Hello, World نه تنها به صورت پررنگ نمایش داده نشد! بلکه دقیقا تگ‌های باز و بسته Bold نیز قابل رویت بود. دقت داشته باشید، اگر به جای دستور مذکور، از دستور ذیل استفاده می‌کردیم، نه تنها عبارت !Hello, World به صورت پررنگ دیده می‌شد، بلکه در هنگام نمایش، تگی نیز مشاهده نخواهد شد:

response.writeHead(200, { 'Content-Type': 'text/html' });

استفاده از دستور response.end، به مرورگر می‌فهماند، که دیگر داده و اطلاعاتی در جهت ارسال توسط Web Server‌ وجود ندارد. در صورتی که این دستور نوشته نشود، پس از درخواست از Web Server، با استفاده از مرورگر، آیکن Loading در بالای مرورگر، ظاهر شده و متوقف نمی‌گردد!

  • داریوش تصدیقی
۰۳
آذر

برای دانلود Visual Studio Code، ابتدا وارد پایگاه http://code.VisualStudio.com شده و با توجه به سیستم عامل خود، نسخه مناسب را انتخاب، دریافت و نصب نمایید. با توجه به اینکه در این مجموعه، هدف اصلی ما، آموزش MEAN Framework می‌باشد، پس از نصب Visual Studio Code، باید نسبت به دریافت و نصب Node.js نیز اقدام نمایید. دقت کنید که پس از نصب این دو نرم‌افزار، باید یکبار سیستم عامل Windows خود را Restart نمایید.

عنایت داشته باشید که در محیط Visual Studio Code، برخلاف Visual Studio، مفهومی با عنوان Project و Solution وجود ندارد! بلکه تفکر کاملا Folder Based می‌باشد. به همین جهت، در گزینه‌های منوی آن، گزینه‌ای با عنوان Open Folder دارد.

حال اجازه دهید که یکی از تمرین‌های مربوط به "آموزش Node.js - قسمت دوم" را این بار با محیط Visual Studio Code اجرا نماییم. برای این منظور ابتدا پوشه‌ای به نام Learn_003 ایجاد کرده و فایل app.js را از پوشه Learn_002، به داخل آن کپی می‌نماییم.

برای اینکه سورس کد را در محیط Visual Studio Code مشاهده نماییم، می‌توانیم از یکی از روش‌های ذیل استفاده نماییم:

۱. از طریق پنجره Windows Explorer وارد پوشه Learn_003 شده، سپس دکمه سمت راست ماوس را زده تا منویی (Context Menu) ظاهر شود. از منوی ظاهر شده، گزینه Open with Code را انتخاب نمایید.

۲. از طریق برنامه Windows Command Prompt، وارد پوشه Learn_003 شده و دستور ذیل را بنویسید:

?> Code .

۳. وارد برنامه Visual Studio Code شده و از منوی File، گزینه Open Folder‌ را انتخاب کرده و پوشه Learn_003 شده و سپس بر روی دکمه Select Folder، کلیک نمایید.

با انجام یکی از روش‌های فوق، پروژه مربوطه باز شده و آماده اجرا می‌باشد. شما می‌توانید فهرست سورس‌کدهای خود را پنجره EXPLORE مشاهده نمایید.

با زدن دکمه‌های ترکیبی CTRL+SHIFT+D، پنجره مربوط به Debug‌ ظاهر شده و می‌توانید با کلیک بر روی دکمه سبز رنگ Start، و یا زدن دکمه F5، نسبت به اجرای برنامه خود اقدام نمایید.

دقت داشته باشید که صرفا در اولین اجرا، ضمن آنکه برنامه اجرا نمی‌شود! کادر مربوط به Select Debug Environment ظاهر شده و گزینه‌هایی را به شما نمایش می‌دهد. دقت کنید که گزینه Node.js را انتخاب نمایید. با این کار، به طور خودکار، پوشه‌ای به نام vscode. ایجاد شده و در داخل آن فایلی به نام launch.json ایجاد می‌گردد. در داخل فایل launch.json، اطلاعاتی که برنامه Visual Studio Code برای اجرای پروژه شما نیاز دارد، درج می‌گردد.

حال اگر مجددا نسبت به اجرای برنامه اقدام نمایید، برنامه اجرا شده و نتیجه آن را در پنجره Debug Console خواهید دید.

  • داریوش تصدیقی
۲۹
آبان

در قسمت اول آموزش Node.js، ابتدا در Windows Command Prompt، دستور Node را اجرا کردیم تا Node Command Prompt‌ ظاهر شود. در آنجا، تعدادی از دستورات JavaScript را اجرا کردیم و نتیجه اجرای آنها را نیز دیدیم. ولی واقعیت آن است که معمولا از این روش برای نوشتن برنامه‌های Node.js استفاده نمی‌شود! معمولا سورس‌کدها را در داخل یک فایل نوشته و از Node می‌خواهیم تا برنامه ما را اجرا نماید.

برای شروع، ابتدا پوشه‌ای به نام Learn_001 ایجاد کرده و از طریق یک ویرایشگر ساده، مانند Notepad، اقدام به ایجاد یک فایل به نام app و با پسوند js می‌کنیم. معمولا عرف بر این است که اولین فایل پروژه، که فایل اصلی پروژه نیز به آن اطلاع می‌شود، به صورت app.js تعریف گردد.

حال در داخل این فایل دستور ذیل را نوشته، و فایل مربوطه را ذخیره می‌کنیم:

console.log("Hello, World!");

حال از طریق Windows Command Prompt، وارد پوشه Learn_001 شده، و یکی از دستورات ذیل را اجرا می‌کنیم:

?> Node app.js

Hello, World!

و یا

?>Node app

Hello, World!

همانگونه که مشاهده می‌کنید، در هنگام اجرای یک فایل، از طریق Node، الزامی به نوشتن پسوند فایل وجود ندارد.

توجه:‌ از این به بعد، به یاد داشته باشید، هر جا که از عبارت <? استفاده کردیم، منظورمان محیط اصلی Windows Command Prompt بوده و هرگاه صرفا از < استفاده کردیم، منظورمان محیط اصلی Node Command Prompt می‌باشد.

مجددا پوشه دیگری در کنار پوشه Learn_001، و به نام Learn_002 ایجاد کرده و فایل دیگری به نام app.js و با محتوای ذیل ایجاد نموده و آن را ذخیره می‌کنیم:

for(var intIndex = 1; intIndex <= 5; intIndex++) {


console.log("Hello, World (" + intIndex + ")!");


}

از نظر رسم‌الخط، در زبان برنامه‌نویسی JavaScript، معمولا آکولاد باز را در مقابل Block مربوطه نوشته و معمولا بعد از آکولاد باز و نیز قبل از آکولاد بسته، یک خط خالی ایجاد می‌کنیم.

حال مجددا از طریق Windwos Command Prompt، وارد پوشه Learn_002‌ شده و دستور ذیل را اجرا می‌کنیم:

?> Node app.js

Hello, World (1)!
Hello, World (2)!
Hello, World (3)!
Hello, World (4)!
Hello, World (5)!

همانگونه که حس کردید، برنامه‌نویسی در محیط‌های ساده‌ای مانند Notepad، چندان خوشایند و دلچسب نمی‌باشد! چرا که اولا هیچ Intellisense در آن وجود نداشته و ثانیا تا قبل از اجرای برنامه، از اشتباه یا بی‌دقتی‌های خود مطلع نخواهیم شد. ولی خبر خوش این است که ویرایشگرهای بسیار زیادی برای برنامه‌نویسی به زبان JavaScript وجود دارد. شاید در حال حاضر بتوان بهترین گزینه را محیط Visual Studio Code معرفی کرد. دقت کنید! اشتباه نکنید! این محیط با محیط Visual Studio که قبلا با آن کار می‌کرده‌اید، بسیار متفاوت است! مهترین ویژگی Visual Studio Code این است که Cross Platform می‌باشد! یعنی شما می‌توانید وارد نشانی http://code.VisualStudio.com شده و بسته به نوع سیستم عامل خود (Windows, Mac, Linux) نسخه مناسب را بارگزاری، نصب و اجرا نمایید.

در آموزش‌های بعد، کمی در رابطه با محیط Visual Studio Code صحبت خواهیم کرد و از این پس، سورس‌کدها و پروژه‌های خود را در قالب این محیط ارایه خواهیم نمود.

- با تشکر از سرکار خانم مهندس مریم تفس عزیز، که در ویرایش این متن، مرا یاری داده است.

  • داریوش تصدیقی
۰۵
آبان

زبان برنامه نویسی برای Node، زبان JavaScript می باشد. حال می خواهیم برای شروع دستورات ساده ای را اجرا نماییم. ابتدا دستور Node را اجرا کرده، تا وارد محیط برنامه نویسی Node شوید.

?> Node

حال دستورات ذیل را به ترتیب نوشته و نتایج آنرا مشاهده نمایید:

> 1 + 1

2


> console.log("Hello, World!");

Hello, World!

undefined


> for(i = 1; i <= 5; i++) console.log("Hello, World!");

Hello, World!

Hello, World!

Hello, World!

Hello, World!

Hello, World!

undefined

حال دو بار دکمه های ترکیبی CTRL+C را فشار دهید تا از محیط Node خارج شوید.
توجه: دقت داشته باشید که در زبان برنامه نویسی JavaScript نحوه تعریف تمامی دستورات به صورت Camel Case‌ می باشد، این بدان معنا است که کلمه اول تمام حروف آن کوچک و بقیه کلمات، حرف اول آنها بزرگ و بقیه حروف کوچک نوشته می شود. مانند console, log, doSomething,...
توجه: اگر دقت کرده باشید در انتهای بعضی از دستورات فوق، کلمه undefined نوشته شده است. لازم به ذکر است، در صورتی که دستور شما مقداری را Return نماید، کلمه undefined نوشته نخواهد شد، مانند دستور ۱ + ۱، ولی در صورتی که دستور شما مقداری را Return نکرده و صرفا عملیاتی را انجام داده و یا چاپ نماید، این کلمه ظاهر خواهد گردید.

  • داریوش تصدیقی
۰۵
آبان

برای نصب و راه اندازی Node.js ابتدا وارد پایگاه https://nodejs.org/en شده و با توجه به سیستم عامل خود و نیز، با توجه به ۳۲ بیتی و یا ۶۴ بیتی بودن سیستم عامل خود، نسخه مناسب را انتخاب، دانلود و نصب نمایید.

توجه: در هنگام نصب، با گزینه های پیش فرض، عملیات نصب را به اتمام رسانید.

پس از عملیات نصب، سیستم عامل خود را یکبار Restart نمایید.

حال وارد محیط Command Prompt شده و دستور ذیل را نوشته، تا اطمینان حاصل نمایید که نصب با موفقیت صورت گرفته و امکان دسترسی به برنامه محیا می باشد:

?> Node --version

v4.2.1

اینجانب نیز دستور فوق را اجرا کردم و دستور بدون خطا اجرا گردید و نسخه جاری برنامه Node که ۴.۲.۱ می باشد، به اینجانب نمایش داده می شود.

توجه: دقت کنید که قبل از کلمه version‌باید دو بار از کاراکتر (-) استفاده نمایید.

توجه: دقت کنید که پارامترهای مربوط به برنامه Node، نسبت به حروف بزرگ و کوچک حساس می باشند (Case Sensetive)، لذا در صورتی که شما به جای version از پارامتر Version استفاده نمایید، با خطا مواجه خواهید شد. لازم به ذکر است که خود دستور Node، نسبت به حروف بزرگ و کوچک حساس نمی باشد!


  • داریوش تصدیقی