<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 3.4.6 Node.js ### 3.4.6 Node.js Node.js是JavaScript在服務器端編程的一種應用,它由Ryan Dahl在2009年發明。Node.js采用了一種事件驅動、異步IO的方式來響應HTTP請求,這與上面介紹的其他編程技術都大不相同。異步IO的好處在于它能用單線程處理高并發;同時這也意味著在編程中大量使用回調函數。下面的示例程序說明了這一點: ``` var http = require('http'); http.createServer(function(request, response) { response.statusCode = 200; response.setHeader('Content-Type', 'text/plain'); response.write("The following is what I got:\n"); request.on('data', function(chunk) { response.write(chunk); }).on('end', function() { response.end("\nThat's all!"); }); }).listen(8090); ``` 在Node.js中,request的消息主體(message body)是通過“data”事件分段讀入的,并由“end”事件標記結束: ``` request.on('data', function(chunk) { //... }).on('end', function() { //... }); ``` 在這個例子中我們返回收到的請求消息主體、并在頭、尾各加上一句話作為應答。 要運行程序,在命令行上執行(假設程序保存在文件echo.js中)[1](#fn_1): ``` node echo.js ``` 然后通過curl客戶端來訪問它(我們現在要通過POST方法發送一些消息給服務器,通過瀏覽器沒法簡單做到): ``` curl http://localhost:8090/ -d name=Bob ``` 其中 “-d name=Bob” 就是我們發送的請求消息主體[2](#fn_2)。 請動手操作一下看看結果是什么。 關于Node.js的更多介紹,請參考這篇官方文檔:<https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/> 關于單線程異步并發模式的優點和缺點,請參考Wiki:<https://en.wikipedia.org/wiki/Node.js#Threading> > 1. 要運行這個程序,請先安裝Node.js:<https://nodejs.org/en/download/>[?](#reffn_1 "Jump back to footnote [1] in the text.") > 2. 這個curl命令模擬瀏覽器的表單(form)提交,用POST方法發送數據,同時設定Content-Type為application/x-www-form-urlencoded。你可以試著指定多個“-d”參數,每個代表表單的一項內容,它們會合并到一起。[?](#reffn_2 "Jump back to footnote [2] in the text.")
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看