node模塊connect筆記

今天擼node擼到了connect,發現由connect模塊對外提供REST風格的API很是方便,往細了讀,發現牛X的express模塊也是基於connect來的,所以特來做個筆記,以備日後查閱

1、基礎環境構建

這裏包塊node的安裝、npm的安裝等。。都已經擼到connect模塊了,沒道理這兩個基礎的東西還沒好,略過。

2、開發工具

vscode

3、開始開發

3.1、創建好項目目錄後,進入到項目目錄下,執行npm install(這條命令需要自己輸入包括項目的名稱、版本號、作者姓名、項目入口文件等配置信息,纔會生成package.json的基礎文件),或者npm install -y(這一步,所有的配置項都是按照默認的來,最終生成一個package.json文件),如下圖所示:

最終,項目目錄下,會生成一個package.json文件,內容就是圖上預覽的部分信息

3.2、打開package.json文件,在其中的“scripts”的標籤下,添加一個“start”的配置項:"start": "node index.js",

這樣,執行項目,只需要輸入:npm start命令,就可以了,而不需要執行 node index.js文件

當然,這部配置還有一部很重要的前提:在當前項目的一級目錄下,創建index.js文件(package.json文件中的main配置項裏頭,配置的那個文件)作爲當前項目的入口文件,如果沒有該文件,無論是執行npm start還是外部導入(require('connect_project'))都會報錯

3.3、安裝connect的依賴

執行命令:npm install connec即可

這樣,在該工程的目錄下, 會生成一個文件夾名稱爲:node_modules的類似於lib目錄功能的目錄,目錄下就是安裝connect的依賴安裝的文件項

4、基礎的事情搞定,開始擼碼

在index.js的同級目錄下,新建一個:01-使用組合的中間件.js的文件,內容如下

// 記錄日誌的中間件
showLogger = (req, res, next) => {
    console.log(`請求頭是:${req.method},請求的url是:${req.url}`);
    // 調用下一個
    next();
};
// 響應你好,node.js信息
sayHello = (req, res) => {
    console.log('Say Hello');
    res.writeHead(200, {
        'Content-Type': 'text/plain;charset=utf-8'
    });
    res.end('你好,Node.js');
};
// 導出,對外使用
module.exports.showLogger = (req, res, next) => showLogger;
module.exports.sayHello = (req, res) => sayHello;

接着在index.js文件中導入這個js,index.js的內容如下:

// 模塊connect_project的入口文件
// 導入connect模塊
const connect = require('connect');
// 實例化connect
const connecter = connect();
// 導入01-使用組合的中間件的模塊
const one_middle = require('./01-使用組合的中間件');
// 使用定義好的中間件
connecter
    .use(one_middle.showLogger())
    .use(one_middle.sayHello());

// 開放端口,對外提供服務
connecter.listen(6699, () => {
    console.log('Connect服務啓動成功...');
});

說明:

1、connec模塊,使用和http這個核心模塊使用上差不太多,區別是connect模塊要想使用需要進行一個類似初始化的操作

const connect = require('connect');
// 實例化connect
const connecter = connect();
// 或者直接:const connecter = require('connect')(); 結果也是一樣的
// 但是http核心模塊不需要
// 只需要:const http = require('http'); 這樣就可以使用http模塊下提供的服務了

2、處理請求,返回響應,也和http模塊差不多,只是,connect使用上有區別

// connect模塊使用上,需要用到use方法,該方法接收三個參數:request、response和next回調函數
// 其中,next這個回調函數可選,如果沒有,connect就不會繼續執行該方法後連的方法了
connecter
    .use(one_middle.showLogger())
    .use(one_middle.sayHello());
// 以上調用:如果showLogger中,沒有next參數,則後續的sayHello就不會執行

// http核心模塊,無法像connect這樣,做到方法鏈的情況,但是可以執行接收一個包含請求和響應的參數
const http = require('http');
http.createServer((req, res) => {...}).listen(6699, () => {...});

最後,就是把程序啓動,測試下是否準確,如下圖,表示啓動成功

 

瀏覽器中,輸入:http://localhost:6699/

得到如下圖所示信息:

程序console信息在控制檯上有如下輸入:

則,表示程序執行正常

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章