Node.js是一個讓JavaScript運行在服務器端的開發平台 參考文章
nodejs特點:
- 單線程
- 異步非阻塞i/o(異步相對節省資源,把那個等待的時間利用上了)
- 事件驅動
- 穩定性差(因為是單線程的,所以一旦哪里出現問題了,整個服務都要終止)
npm是nodejs的包管理工具,參考其他博客
nodejs Windows下的安裝。
接下來nodejs的使用:(寫好代碼后在文件所在目錄使用命令行輸入: node 文件名 即可運行。)
//引入內置的http包 var http = require('http'); //創建服務 var server = http.createServer(function(req,res){ //這里的匿名函數參數req是(request)請求,res(response)是響應 res.end(1111); //注意這里 括號里不管是什么都要加上‘引號’ }); console.log('ok'); //端口監聽 server.listen(8080);
可以看到OK,說明啟動成功。但是遇到一個問題,就是在瀏覽器上輸入localhost:8080,找不到服務器
找到問題根源了,竟然是因為res.end(1111);沒有加引號,我。。。TM。。。。以為數字不需要加引號,沒想到nodejs如此特殊。res.end(111)改成res.end('111');就OK了。
獲取請求的參數:
- 獲取請求方式:var method = req.method;
- 獲取請求路徑:var url = req.url;
- 獲取http版本號:var version = req.httpVersion;
- 獲取請求頭信息:var headers = req.headers; //這個是數組
- 對於頭信息,如果想要獲取某個值,可以使用 . 或者 [ ] 來訪問,如果數組鍵名含有 - ,那么只能用 [ ] 來訪問。比如 var userAgent = headers[user-agent]; 查看頭信息可以使用console.log(headers); 在命令行中可以看到。(修改服務端代碼,啟動服務之后,刷新瀏覽器)
- 解析URL:第一步需要先引入 var urlTool = require('url'); 然后 var data = urlTool.parse(url); 第一個參數URL是獲取的請求路徑。可以傳第二個參數:true。作用是將解析后的部分字符串數據轉換成對象。