Node.js基礎入門04

node筆記 --祈粼

命名規(guī)則:文件或函數(shù)或變量命名只能以字母開頭
模塊:

一般都是一個JS文件一個模塊,而多個JS文件之間是可以相互require的(也就是相互引用),他們共同實現(xiàn)了一個大的功能

在Node.js當中,一個JavaScript文件中定義的變量或函數(shù),都只在這個當前的文件內(nèi)有效,也可以理解為,每個JS文件都是一個閉包結(jié)構(gòu),所以當我們需要從此JS文件外部引用這些變量或函數(shù)的時候,必須使用exports對象進行對象的暴露,而調(diào)用者需用通過require()命名來引入這個JavaScript文件

A文件 --require--> B文件 ---require--> C文件

Node.js中exports與module.exports的區(qū)別

每一個node.js執(zhí)行文件
都會自動創(chuàng)建一個module對象
同時module對象都會創(chuàng)建一個名為exports的屬性
它的初始值都是{}
exports就是module.exports

一般require返回的是module.exports,在module.exports上可以導出函數(shù)、對象實例、基本類型的變量等,因此,一般就是用module.exports作為模塊的導出

如果想用exports作為模塊的返回,那么就為它設置一個屬性,并且不要在module.exports上同時導出同名的屬性或者函數(shù)實例等(會替代exports)

關(guān)于 require 導入路徑問題

一般用require導入的文件路徑都需要加./
如果不加則會去node_mudules文件里面查找 同級如果沒有node_mudules文件會向上依次查找

//npm install silly-datetime
const sd = require("silly-datetime");//時間對象


/*
    format:兩個參數(shù)
    第一個:時間對象,就是你需要格式化的字符對象
    第二個:傳入你需要指定的時間格式

    year:年
    month:月
    day:天
    hour:小時
    Minute:分鐘

    Y:年   M:月   D:日   H:小時  m:分鐘(注意大小寫)
*/
let now= sd.format(new Date(),"YYYYMMDDHHmm");

console.log("北京時間:"+ now);

nodeJS 表單提交 POST請求

HTML :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>表單提交</title>
    <link rel="stylesheet" href="css/master.css"/>
</head>
<body>
    <div class="wrapper">
        <div class="title">注冊中心</div>
        <form class="form" action="http://localhost:3000/dopost" method="post">
            <ul>
                <li><input type="text" name="name" placeholder="請輸入您的名字" class="txt"/></li>
                <li><input type="password" name="password" placeholder="請輸入您的密碼" class="txt"/></li>
                <li><input type="submit" placeholder="" class="btn"/></li>
            </ul>
            <div class="cl"></div>
        </form>
    </div>
</body>
</html>

JS:

const http = require("http");
const queryString = require("querystring"); // 模塊提供用于解析和格式化 URL 查詢字符串的實用工具

const server = http.createServer((req, res) => {
    console.log(req.method);//req.method:獲取提交的方式:get/post
    if (req.url == "/dopost" && req.method.toLowerCase() == "post") {
        /*
            下面這個公式是post的請求接收公式
            這里只接收了一小段,防止一個過大的請求處理阻塞了這個進程
        */
        //傳輸中
        let allData = "";
        /*
            我們在本地電腦可能只會看到一次分段處理,但是在服務器端可能會有N個
        */
        req.addListener("data", chunk => {
            allData += chunk;
        });
        //傳輸完畢
        req.addListener("end", () => {
            let dataString = allData.toString();
            console.log("allData loading....");
            console.log(allData);
            //將dataString轉(zhuǎn)換為一個對象
            let dataObj = queryString.parse(dataString);
            console.log("dataObj loading.....");
            console.log(typeof dataObj);
            console.log("名字:" + dataObj.name);
            console.log("密碼:" + dataObj.password);
            res.end("success");
        });
    }
});

server.listen(3000, "127.0.0.1");

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

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

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