بىلىملەر مۇنبىرى

 پارول قايتۇرىۋېلىش
 تىزىملىتىڭ
جەمئىي مىكروبلوگ 258 تال  

مىكروبلوگ[ يېڭى | 24 سائەت | 7 كۈن | 30 كۈن ]

كۆرۈش: 282|ئىنكاس: 0

[Node.js] Node.js يول باشلاش(路由)

[ئۇلانما كۆچۈرۈش]

بىكەتكە ئەزا نامىڭىز بىلەن كىرسىڭىز تېخىمۇ كۆپ ئۇچۇرلارنى كۆرەلەيسىز

مۇنبىرىمىزگە تىزىملىتىپ كىرسىڭىز ئاندىن قوشۇمچە ھۆججەتنى كۆرەلەيسىز ياكى چۈشۈرەلەيسىز . تېخى تىزىملاتمىغانمۇ؟ تىزىملىتىڭ

x
URL ئىلتىماس قىلغاندىكى يول باشلاش بىلەن باشقا لازىملىق GET ياكى POST پارامېتىرلار، يول باشلاش سانلىق مەلۇماتلارغا ئاساسەن مۇناسىپ كودنى ئىجرا قىلىدۇ.
بىز ئېھتىياجلىق بولغان بارلىق سانلىق مەلۇماتلار request ئوبيېكتى ئىچىدە بولىدۇ، بۇ ئوبيېكت onRequest() قايتما فۇنكسىيەسىنىڭ تۇنجى پارامېتىرىدا يوللىنىدۇ. لېكىن بۇ سانلىق مەلۇماتلارنى ئانالىز قىلىش ئۈچۈن، بىزگە يەنە باشقا Node. JS مودۇلى كېرەك بولۇپ، ئۇلار url ۋە querystring مودۇلىدۇر.
  1.                    url.parse(string).query
  2.                                            |
  3.            url.parse(string).pathname      |
  4.                        |                   |
  5.                        |                   |
  6.                      ------ -------------------
  7. http://localhost:8888/start?foo=bar&hello=world
  8.                                 ---       -----
  9.                                  |          |
  10.                                  |          |
  11.               querystring.parse(queryString)["foo"]    |
  12.                                             |
  13.                          querystring.parse(queryString)["hello"]
مەزمۇننى كۆچۈرۈۋېلىش

ئەلۋەتتە بىز يەنە querystr مودۇلى ئارقىلىق POST ئىلتىماسدىكى  پارامېتىرلارنى ئانالىز قىلساق بولىدۇ.
تۆۋەندە بىز onRequest() فۇنكىسىيىسىگە بىر قىسىم لوگىكىلارنى قوشۇپ، تور كۆرگۈچ ئىلتىماس قىلغان URL ئادىرىسىنى تېپىپ چىقايلى:
server.js ھۆججەت كودى:
  1. var http = require("http");
  2. var url = require("url");

  3. function start() {
  4.   function onRequest(request, response) {
  5.     var pathname = url.parse(request.url).pathname;
  6.     console.log("Request for " + pathname + " received.");
  7.     response.writeHead(200, {"Content-Type": "text/plain"});
  8.     response.write("Hello World");
  9.     response.end();
  10.   }

  11.   http.createServer(onRequest).listen(8888);
  12.   console.log("Server has started.");
  13. }

  14. exports.start = start;
مەزمۇننى كۆچۈرۈۋېلىش

مانا بىزنىڭ پروگراممىمىزدا ئىلتىماس قىلغان URL يولى ئارقىلىق ئوخشىمىغان تەلەپلەرنى پەرقلەندۈرگىلى بولىدىغان بولدى. بۇ بىزنىڭ يول باشلاش ئارقىلىق ئىلتىماسىمىزنى URL يولىنى ئۆلچەم قىلىپ بىر تەرەپ قىلىش پروگراممىسىغا ئەكس ئەتتۈرۈش ئىمكانىيىتىگە ئىگە قىلىدۇ.  
بىز قۇرماقچى بولغان پروگراممىدا، /start ۋە /upload دىن كەلگەن ئىلتىماسنى ئوخشىمىغان كودلار ئارقىلىق بىر تەرەپ قىلىشقا بولىدىغانلىقىدىن دېرەك بېرىدۇ. 
تۆۋەندە بىز يول باشلاش يېزىپ باقايلى، router.js ناملىق بىر ھۆججەت قۇرۇپ تۆۋەندىكى كودنى يازايلى:
router.js ھۆججەت كودى:
  1. function route(pathname) {
  2.   console.log("About to route a request for " + pathname);
  3. }

  4. exports.route = route;
مەزمۇننى كۆچۈرۈۋېلىش

يوقارقىدەك بۇ بۆلەك كودتا ھېچنېمە قىلمىدۇق، تېخىمۇ كۆپ لوگىكىنى قوشۇشتىن بۇرۇن، بىز ئالدى بىلەن يول باشلاش بىلەن مۇلازىمېتىرنى قانداق بىرلەشتۈرگىلى بولىدىغانلىقىنى كۆرۈپ باقايلى.
بىزنىڭ مۇلازىمېتىرىمىز يول باشلاشنىڭ مەۋجۇتلۇقىنى بىلىشى ھەمدە ئۇنىڭدىن ئۈنۈملۈك پايدىلىنىشى كېرەك. بىز ئەلۋەتتە قاتتىق كودلاشتۇرۇش ئۇسۇلى ئارقىلىق بۇ بېقىنىش تۈرىنى مۇلازىمېتىرغا باغلىيالايمىز، لېكىن باشقا تىللارنىڭ پروگرامما تۈزۈش تەجرىبىسى بىزگە بۇنىڭ ئىنتايىن ئازابلىق ئىش ئىكەنلىكىنى ئېيتىپ بېرىدۇ، شۇڭا بىز بېقىنىپ كىرگۈزۈش ئۇسۇلىنى قوللىنىپ يول باشلاش بۆلىكىنى قوشىمىز.
ئالدى بىلەن مۇلازىمېتىرنىڭ start() فۇنكىسىيەسىنى كېڭەيتىپ، يول باشلاش فۇنكىسىيەسىنى پارامېتىر قىلىپ يەتكۈزۈپ بېرىمىز، server.js ھۆججەت كودى تۆۋەندىكىچە:
server.js ھۆججەت كودى:
  1. var http = require("http");
  2. var url = require("url");

  3. function start(route) {
  4.   function onRequest(request, response) {
  5.     var pathname = url.parse(request.url).pathname;
  6.     console.log("Request for " + pathname + " received.");

  7.     route(pathname);

  8.     response.writeHead(200, {"Content-Type": "text/plain"});
  9.     response.write("Hello World");
  10.     response.end();
  11.   }

  12.   http.createServer(onRequest).listen(8888);
  13.   console.log("Server has started.");
  14. }

  15. exports.start = start;
مەزمۇننى كۆچۈرۈۋېلىش

شۇنىڭ بىلەن بىر ۋاقىتتا، بىز ماس ھالدا index. js نى كېڭەيتىمىز، بۇنىڭ بىلەن يول باشلاش فۇنكسىيەسى مۇلازىمېتىرغا كىرگۈزۈلىدۇ:
index.js ھۆججەت كودى:
  1. var server = require("./server");
  2. var router = require("./router");

  3. server.start(router.route);
مەزمۇننى كۆچۈرۈۋېلىش

بۇ يەردە، بىز يەتكۈزگەن فۇنكسىيە يەنىلا ھېچنېمە قىلمىدى.
ئەگەر ھازىر  (node index.js ، باشتىن-ئاخىر بۇ بۇيرۇق قۇرى ئېسىڭىزدە بولسۇن) پروگراممىنى قوزغاتقاندىن كىيىن، بىر URL نى ئىلتىماس قىلساق، سىز پروگرامما چىقارغان مۇناسىۋەتلىك ئۇچۇرلارنى كۆرىسىز، بۇ بىزنىڭ HTTP مۇلازىمېتىرىمىزنىڭ ئاللىقاچان يول باشلاش بۆلىكىنى ئىشلىتىۋاتقانلىقىنى بىلدۈرىدۇ ھەمدە تەلەپ قىلغان يولنى يول باشلاشقا يەتكۈزۈپ بېرىدۇ:
  1. $ node index.js
  2. Server has started.
مەزمۇننى كۆچۈرۈۋېلىش

تور كۆرگۈچتە http://127.0.0.1:8888 نى زىيارەت قىلساق، نەتىجىسى تۆۋەندىكىچە:
227B22AE-E633-4DCB-8740-AA51D32B8942.jpg
بىلمىگەننى بىلىملەردىن بىل!
كىرگەندىن كېيىن ئىنكاس يازالايسىز كىرىش | تىزىملىتىڭ

سەھىپە جۇغلانما قائىدىسى

QQ|قاماقخانا|رەسىمسىز ھالەت|يانفۇن| بىلىملەر تورى ( 沪ICP备19027845号-8 )   

GMT+8, 2021-2-27 14:33 , Processed in 0.076592 second(s), 31 queries .

Powered by Discuz! X3.2(NurQut Team)

© 2001-2013 Comsenz Inc.

تېز ئىنكاس چوققىغا قايتىش سەھىپىگە قايتىش