nodejs主要模組介紹
本章節簡單介紹一下nodejs的主要模組,需要的朋友可以做一下參考。
一.http模組:
主要類:
[JavaScript] 純文字檢視 複製程式碼Class: http.Server
var server = http.createServer();
server就是http.Server類的例項。
常用的方法有:
[JavaScript] 純文字檢視 複製程式碼server.listen(port, [hostname], [backlog], [callback])
[JavaScript] 純文字檢視 複製程式碼Class: http.ServerResponse
var server = http.createServer(function(req,res){ });
res就是 http.ServerResponse類的例項。
[JavaScript] 純文字檢視 複製程式碼Class: http.IncomingMessage
var server = http.createServer(function(req,res){ });
req就是http.IncomingMessage類的例項。
二.server物件:
可以使用on語法監聽某個事件。
[JavaScript] 純文字檢視 複製程式碼var http = require('http'); var server = http.createServer(); server.on('request',function ( req,res ) { res.setHeader('Content-type','text/html;charset=utf8'); if ( req.url == '/' ){ res.end('index'); } else { res.end('404'); } }); server.listen(8080,'localhost');
三.req物件:
每次上行請求頭物件
[JavaScript] 純文字檢視 複製程式碼req.headers HTTP上行請求頭
[JavaScript] 純文字檢視 複製程式碼req.httpVersion http請求的版本。現在基本上都是1.1 req.method “GET”、”POST”就是請求的型別 req.url 使用者請求的網址
四.res物件:
每次下行響應物件
[JavaScript] 純文字檢視 複製程式碼res.end()//每次都要有這個語句,表示這次的傳送已經結束引數必須是string、buffer(圖片、檔案)。 res.write()//就是寫HTTP下行請求的body res.setHeader()//設定返回的報文頭部 res.statusCode = 404;//設定狀態碼 res.writeHead()//和res.setHeader差不多 res.writeHead(288 , {"Content-Type":"text/plain"});
五.url模組:
作用內建模組,解析url,解析地址。 分析和解析 URL 的工具
url.parse()就是用來解析網址,接收一個字串,返回一個JSON:
[JavaScript] 純文字檢視 複製程式碼var obj = url.parse("http://localhost:8080/a/b/c/1.html?name=ting&age=21");
url.parse方法第二個引數如果是true,那麼返回的物件中的query就是json
query: { xingming: 'xiaoming', age: '12' }
六.querystring模組:
querystring模組是專門用來解析GET請求的查詢字串的。
console.log( qs.parse('name=ting&age=21&hobby=run&hobby=sing') );
返回:{ name: 'ting', age: '21', hobby: [ 'run', 'sing' ] }
七.path模組:
處理和轉換檔案路徑的工具集,專門處理路徑
path.basename() :返回路徑中的檔名
path.dirname():返回路徑中的資料夾名
path.extname():返回路徑的擴充名
[JavaScript] 純文字檢視 複製程式碼console.log( path.basename('/xixi/haha/a.html') ); //a.html console.log( path.extname('/xixi/haha/a.html') ); //.html console.log( path.dirname('/xixi/haha/a.html') ); ///xixi/haha
八.fs模組:
檔案處理模組,可以讀檔案,也可以寫檔案
[JavaScript] 純文字檢視 複製程式碼fs.readFile(); //讀取檔案內容 fs.readDir(); //讀取資料夾名 fs.appendFilr(); //追加檔案 fs.writeFile(); //寫入檔案(覆蓋原有的):
九.自定義模組:
每一個js檔案中可以看成是一個小小的模組
require('./test/a.js');
每個js檔案就是一個閉包,宣告的函式、變數只在這個js檔案內部有定義。
A require了 B , 那麼B裡面的所有路徑都要按照A的路徑寫。
如果需要使用到其它檔案中的變數,使用exports暴露出去。
exports.*** = ***;
testA .js
var a = 100;
exports.a = a;
主檔案
var testA = requrie('./testA.js');
console.log( testA.a );
暴露唯一的介面,module.exports ,一般使用到建構函式。
如果只有寫檔案載入,會去預設資料夾下:node_modules 尋找是否有當前需要載入的檔案
require('test.js');
也可以直接省略路徑、省略檔名,只寫資料夾名
require('aa');
實際上引用的是node_moduels資料夾裡面的aaa資料夾裡面的index.js檔案。
一般第三方模組,都放入node_modules資料夾中。
package.json:
[JavaScript] 純文字檢視 複製程式碼配置資訊: { "name": "my_package", //專案名字 "version": "1.0.0", //版本號 "main": "index.js", //入口檔案 "keywords": [], //關鍵詞,就是搜尋什麼npm上能夠顯示你 "author": "ag_dubs", //作者 "license": "ISC", //版權協議 "repository": { //程式碼託管倉庫,這個會自動生成一個連線 "type": "git", "url": "https://github.com/ashleygwilliams/my_package.git" }, "bugs": { //如果發現bug應該交給誰 "url": "https://github.com/ashleygwilliams/my_package/issues" }, "dependencies": { "underscore": "*", "date-format" : "0.0.2" }, "homepage": "https://github.com/ashleygwilliams/my_package" //個人網站 } 最重要的資訊是:依賴 { "dependencies": { "underscore": "*", "date-format" : "^0.0.2" } }
formidable:
[JavaScript] 純文字檢視 複製程式碼formidable 語法 var form = new formidable.IncomingForm(); //設定上傳路徑 form.uploadDir = "./uploads"; form.parse(req, function(err, fields, files) { //fields是普通域,就是普通的文字框、單選按鈕、核取按鈕、textarea都存在這個物件裡面 //files是上傳的檔案資訊 var newname = df('yyyyMMddhhmmssSSS', new Date()); fs.rename(files.touxiang.path , "./uploads/" + newname + ".jpg",function(err){ if(err){ res.end("error"); return; } }); res.end("ok"); });
相關文章
- 使用 nodejs 寫爬蟲(-): 常用模組介紹和前置JS語法NodeJS爬蟲
- 【StoneDB 模組介紹】伺服器模組伺服器
- ModStartCMS模組開發介紹
- 3.03 模組外掛介紹
- Android模組化框架介紹Android框架
- sap軟體功能介紹及主要功能(模組)有哪些?
- [NodeJs系列]NodeJs模組機制NodeJS
- 簡單介紹python process模組Python
- Python 關於JSON模組介紹PythonJSON
- Python的常見模組:OS和 time模組介紹Python
- Nodejs教程10:Nodejs的模組化NodeJS
- Nodejs 的 fs 模組NodeJS
- NodeJS的模組原理NodeJS
- nodejs之-fs模組NodeJS
- nodejs request模組用法NodeJS
- NodeJS之path模組NodeJS
- nodejs的stream模組NodeJS
- Altair Simdroid 流體分析模組介紹AI
- python之pymsql模組相關介紹PythonSQL
- Python之logging模組相關介紹Python
- Django重要元件之Auth模組介紹Django元件
- Nginx 架構——【核心流程+模組介紹】Nginx架構
- mysql SQL Layer各個模組介紹MySql
- Simulink模擬---自帶PMSM電機模組介紹
- Python3 日曆(Calendar)模組介紹Python
- Python的包(package)和模組(module)介紹PythonPackage
- Istio所有模組、Service、Pod的功能介紹
- node表格模組exceljs介紹1–基本使用ExcelJS
- 深聊Nodejs模組化NodeJS
- Nodejs如何呼叫Dll模組NodeJS
- Node加密模組bcrypt nodejs加密NodeJS
- Nodejs中的stream模組NodeJS
- python基礎之-sys模組、os模組基本介紹(未完成)Python
- MT7628 wifi(路由器)模組晶片組介紹WiFi路由器晶片
- 日誌篇:模組日誌總體介紹
- 接入層Nginx架構及模組介紹分享Nginx架構
- 光模組數字診斷(DDM)功能介紹
- HanLP分類模組的分詞器介紹HanLP分詞
- ASP.NET Core模組化前後端分離快速開發框架介紹之3、資料訪問模組介紹ASP.NET後端框架