nodejs學(xué)習(xí)資料 - 第五節(jié):模塊系統(tǒng)&函數(shù)&路由

模塊系統(tǒng)

創(chuàng)建模塊

  • mod1.js
exports.say = function(val){
    console.log("say : "+val);
};
  • mod2.js
function Hello() {
    var num;
    this.add = function (val) {
        num = val;
    };
    this.say = function () {
        console.log("hello : " + num);
    };
};
module.exports = Hello;
  • main.js
var mod1 = require("./mod1");
var Hello = require("./mod2");

mod1.say("hello!");

var mod2 = new Hello();
mod2.add(12);
mod2.say();

模塊調(diào)用規(guī)則

原生模塊緩存 -> 原生模塊目錄 -> 文件模塊緩存 -> 文件模塊目錄

函數(shù)參數(shù)

function say(word) {
  console.log(word);
}

function execute(someFunction, value) {
  someFunction(value);
}

execute(say, "Hello");

匿名函數(shù)

function execute(someFunction, value) {
  someFunction(value);
}

execute(function(word){
    console.log(word)
    },
    "Hello");

路由

  • 用到兩個(gè)模塊

url 分析地址
querystring 解析參數(shù)

手冊(cè)
https://nodejs.org/api/url.html
https://nodejs.org/api/querystring.html

  • router.js
exports.route = function (pathName) {
    console.log("route : " + pathName);
};
  • server.js
var http = require("http");
var url = require("url");

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

        route(pathname);

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

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

exports.start = start;
  • main.js
var server = require("./server");
var router = require("./router");

server.start(router.route);
  • 運(yùn)行
$ node main.js

瀏覽器輸入 http://127.0.0.1:8888/

  • 輸出
Server has started.
Request for /%EF%BC%8C%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%E5%A6%82%E4%B8%8B%EF%BC%9A received.
route : /%EF%BC%8C%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%E5%A6%82%E4%B8%8B%EF%BC%9A

代碼

https://github.com/hans007/JavaScriptCodes/tree/master/nodejs-do

我的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,832評(píng)論 6 427
  • 前些日子從@張?chǎng)涡裎⒉┨幍靡环萃扑](Front-end-tutorial),號(hào)稱最全的資源教程-前端涉及的所有知識(shí)...
    谷子多閱讀 4,485評(píng)論 0 44
  • 時(shí)間: 2017年4月12-13日 地點(diǎn): 混序349《詩(shī)書(shū)國(guó)學(xué)》部落 《一》 每日國(guó)學(xué)經(jīng)典閱讀.《小窗幽記》卷六...
    混序守護(hù)者閱讀 569評(píng)論 0 0
  • 環(huán)華途中,有很多小發(fā)現(xiàn)。由于當(dāng)時(shí)精力有限,來(lái)不及寫(xiě)。 比如說(shuō),賓館的洗漱用品這塊~~ 我發(fā)現(xiàn),兩面針系列產(chǎn)品占據(jù)絕...
    王小二日記閱讀 601評(píng)論 0 0

友情鏈接更多精彩內(nèi)容