هذا الأسبوع ، تم تنفيس المشروع (يجب أن يقال إنه كان دائمًا هكذا). يجب فتح الملخص على أساس مواقف مختلفة ~ تسجل هذه المقالة ملخص التعلم حول العقدة ، والمقالة التالية هي المعرفة على الواجهة الأمامية من الويب المستفادة من المشروع.
1. http
تم كشف وحدة HTTP للعقدة في المقالة الأولى. هنا سوف نتعلم واجهات برمجة التطبيقات التي تظهر في عدة إجراءات.
نسخة الكود كما يلي:
var qs = required ('QueryString') ؛
تتطلب ('http'). streeServer (function (req ، res) {
if ('/' == req.url) {
Res.Writehead (200 ، {'content-type': 'text/html'}) ؛
الدقة. ([[
'<form method = "post" action = "/url">' ،
"<h1> النموذج الخاص بي </h1>" ،
'<fieldset>' ،
"<label> المعلومات الشخصية </label>" ،
"<p> ما هو اسمك؟ </p>" ،
'<input type = "text" name = "name">' ،
'<p> <butting> إرسال </button> </p>' ،
"</form> '،
].ينضم(''))؛
} آخر إذا ('/url' == req.url && 'post' == req.method) {
var body = '' ؛
req.on ('Data' ، function (chunk) {
الجسم += قطعة ؛
}) ؛
req.on ('end' ، function () {
Res.Writehead (200 ، {'content-type': 'text/html'}) ؛
res.end ('<b> اسمك هو <b>' + qs.parse (الجسم) .Name + '</b> </p>') ؛
}) ؛
}آخر{
Res.Writehead (404) ؛
res.end ('لم يتم العثور عليها') ؛
}
}). الاستماع (3000) ؛
معلمة وظيفة CreaterServer ([requestListener]) هي وظيفة وظيفة رد الاتصال (REQ ، RES) ، حيث REQ (طلب الطلب) هي مثيل لـ http.incomingmessage ، و RES (الاستجابة) هي مثيل لـ http.serverrsponse.
استخدمنا عنوان URL ، سلسلة طريقة الدقة وطريقتين للكتابة والنهاية. كما يوحي الاسم ، عنوان URL هو عنوان URL الذي يسجل HTTP (كل شيء بعد اسم المضيف) ، والطريقة هي الطريقة التي تسجل استجابة HTTP.
يتم استخدام BRITESHED (statuscode ، [QuarePhrase] ، [Headers]) لإرسال معلومات رأس استجابة HTTP. يتم استدعاء هذه الطريقة مرة واحدة فقط عند وصول الرسالة ويجب استدعاؤها قبل طريقة مثل النهاية. إذا قمت بذلك بدلاً من ذلك ، فاتصل بالأسلوب (chunk ، [الترميز]) أو النهاية ([البيانات] ، [الترميز]) أولاً ، سيقوم النظام تلقائيًا بتسجيل محتوى رأس استجابة (غير مرئي ، غير قابل للتغيير) ويطلقون على طريقة رأس الكتابة.
سترسل طريقة النهاية رسالة إلى الخادم للإشارة إلى أن الاستجابة يتم إرسالها ، لذلك يجب استدعاء هذه الطريقة في كل مرة يتم فيها إرسال الاستجابة. عندما يكون لدى معلماتها محتوى (مثل الإجراءات الروتينية) ، فإن هذه الطريقة تعادل استدعاء كل من الكتابة ("المحتوى" ، [الترميز]) وطرق النهاية. هذا مريح للغاية.
بعد ذلك ، يستخدم الروتين req.on للاستماع للأحداث وربط REQ (الرسالة). النموذج الأولي الخاص به هو Emitter.on (الحدث ، المستمع) ، REQ هو الكائن الذي يولد الأحداث ، وفي وظيفة الاستماع ، يشير هذا إلى كائن EventEmitter المرتبط بوظيفة الاستماع الحالية.