1. 程式人生 > >node入門(一)--內建模組

node入門(一)--內建模組

Global and window 全域性物件
首先,下載安裝nodejs

//node環境下為global
//瀏覽器環境下為window
global.setTimeout(function () { 
    console.log("xx");
},1000);
//global下的內建物件 setTime(), setInterval()
//當前絕對路徑資料夾—前面不加global
console.log(__dirname);
//當前檔案的絕對路徑
console.log(__filename);

process.exit(); 程序

console.log("ceshi");
console.log
("ceshi"); process.exit();//提前結束程序,後面不執行 console.log("ceshi");

node內建模組

語法:require(‘模組名’)

util模組

見文知意,就不累敘
isArray(),isRegExp(),isDate(),isError

eg:
var util = require('util');
//傳入引數,返回是布林值
console.log(util.isArray([]));

http模組

抓取網頁內容
語法:request({host,port,path,method,headers},callback)
var
http = require('http'); //發起一個request請求 http.request({ host: 'www.baidu.com',//必須 port: 80, path: '/',//根路徑 method : 'get', headers:{//主要用於同個ip下的多個域名訪問 host:'file.home.com' } }, function (response) { var datas = []; //註冊非同步,得到返回值 response.on('data', function (data) {
datas.push(data); }); response.on('end', function () { console.log(datas.join('')); }) }).end();

createServer 建立一個伺服器

建立一個伺服器:
createServer(cb(req,resp)),listen(port,cb))
response.writeHead(200,{})
//一個簡易伺服器 

var http = require('http');
http.createServer(function (req,resp) {
    /*resp.writeHead(302,{//請求轉發重定向
     location : 'http://www.baidu.com'
     });*/
    //設定請求頭,以純文字返回 可選:text/html
    resp.writeHead(200,{
        'Content-Type' : 'text/plain'
    });
    resp.write('<h3>11___11</h3>'); //write後還可以繼續寫
    resp.end('<h1>js js JS</h1>');//end就代表不能繼續
}).listen(3000,function () {
    console.log('伺服器打開了');
});

使用get方式與伺服器進行互動

var http = require('http');
var url = require('url');//匯入url模組得到請求資料
var queryString = require('querystring');//解析

http.createServer(function (req,resp) {
    /*get讀取方式*/
    console.error(url.parse(req.url));
    /** 通過url parse解析的get請求資料
    * Url {
     protocol: null,
     slashes: null,
     auth: null,
     host: null,
     port: null,
     hostname: null,
     hash: null,
     search: '?name=123&password=321',
     query: 'name=123&password=321',
     pathname: '/',
     path: '/?name=123&password=321',
     href: '/?name=123&password=321' }
    * */
     var query = url.parse(req.url).query;
    console.log(query); //name=123&password=321
    //載入queryString 解析為json
    console.log(queryString.parse(query));
    //{ name: '123', password: '321' }

    resp.writeHead(200,{//請求轉發
        'Content-Type' : 'text/html'
    });
    resp.end('<form method="get">' +
        '<input name="name"><br>' +
        '<input name="password"><br>' +
        '<button type="submit">點我</button>' +
        '</form>');
}).listen(3000,function () {
    console.log('伺服器打開了');
});

使用post方式與伺服器進行互動

var http = require('http');
var url = require('url');//匯入url模組得到請求資料
var queryString = require('querystring');//解析

http.createServer(function (req,resp) {
    /*post請求方式*/
    var datas = [];
    //在req上註冊data事件
    req.on('data',function (data) {
        datas.push(data);
    });
    req.on('end',function () {
        console.log(datas.join('')); 
        //name=123&password=123
        console.log(queryString.parse(datas.join(''))); 
        //{ name: '123', password: '123' }
    });

    resp.writeHead(200,{//請求轉發
        'Content-Type' : 'text/html'
    });
    resp.end('<form method="post">' +
        '<input name="name"><br>' +
        '<input name="password"><br>' +
        '<button type="submit">點我</button>' +
        '</form>');
}).listen(3000,function () {
    console.log('伺服器打開了');
});

檔案系統模組

eadFile-readdir
readFile(path,cb(err,data)) 讀取檔案
readdir(path,cb(err,files)) 讀取目錄下的檔案
writeFile(path,data) 寫入檔案
unlink() 刪除檔案
mkdir() 建立一個目錄
rmdir() 刪除一個目錄
exists() 判斷一個檔案是否存在,非同步回撥
existsSync() 用同步方式判斷檔案
rename() 修改檔名非同步
//test.txt中的檔案內容
<h1>Hello world</h1>

var fs = require('fs');
//讀取檔案 .為當前路徑
fs.readFile('test.txt',function (err,data) {
    //得到是陣列,需要toString();
    console.error(data.toString());
    //<h1>Hello world</h1>
});
//讀取當前檔案下的所有檔案,包括資料夾內的
fs.readdir('.',function (err,dirs) {
    console.log(dirs);
});
//寫入資料
fs.writeFile('./test.txt','<h1>世界你好</h1>',function (err) {
    console.log(arguments);
})

子程序模組

exec(cmd,{encoding:'GBK'},callback(err,data))
var http = require('http');
var child_process = require('child_process');
http.createServer(function (req, resp) {
    resp.writeHead(200, {//請求轉發
        'Content-Type': 'text/html'
    });
    //拿help或者ipconfig
    child_process.exec('help',{encoding:'GBK'},function (err,data) {
        resp.end(data);
    });
    /*child_process.exec('ipconfig',{encoding:'GBK'},function (err,data) {
        resp.end(data);
    });*/
}).listen(3000, function () {
    console.log('伺服器打開了');
});

相關推薦

node入門--模組

Global and window 全域性物件 首先,下載安裝nodejs //node環境下為global //瀏覽器環境下為window global.setTimeout(function

Python3標準庫 函式

Python中內建了很多的函式,而學習標準庫我們需要事先熟悉這些內建函式,所以在這裡一個個進行介紹。有些函式比較簡單,只給予文字描述,而有些函式會給出示例程式碼幫助理解。 返回一個整數或浮點數的絕對值,如果是複數,返回它的模。 當 iterable 中所有元素都為 Tru

Three.js入門一個場景

style api text webgl () mes utf 動畫 fun 上一面講述了向場景中添加物體對象。這一篇準備把每個功能點細細的講述一遍,一方面是為了加深自己的理解。另一方面希望能夠 幫助到有需要的人。 一、在學習WEBGL的時候,你應該先了解要創建一個WebG

Java EE入門教程系列第二章JSP——物件

2.4 內建物件 2.4.1 常用的內建物件 在JSP頁面中已經預先定義好了9個內建物件,可以在Web應用中直接使用。內建物件的構建基於HTTP協議,所以它們可以完成收集瀏覽器請求發出的資訊、響應瀏覽器請求以及儲存客戶資訊等工作,極大簡化了Web開發工作。 JSP內建列表如下圖所示:

Node.js開發入門——安裝Node.js及編輯器配置

Node.js是一個輕鬆構建快速,可擴充套件的網路應用平臺建立在Chrome的JavaScript執行。Node.js使用事件驅動,非阻塞I/O模型,使得它重量輕,高效,完美的資料密集型實時應用程式執行在分散式裝置。 Node.js是讓JavaScript脫離瀏覽器執行

nodejs快速入門-模組化開發

    隨著網站開發的複雜度越來越高,js程式碼和js檔案的增多,出現了開發者頭疼的兩個問題:① 命名衝突;②檔案依賴。js模組化開發可以解決這些問題。   ①變數命令衝突        在js檔案中,如下建立一個變數並賦予一個函式。如果檔案的程式碼過多,在後續的程式碼中再次

Spring Boot 入門 ——一個最簡單的springboot專案

建立一個最簡單的springboot專案 廢話不多說直接開整!! 開啟eclipse新建一個maven專案,目錄格式如下: 開啟pom.xml檔案,引入父依賴,web依賴,並設定JDK版本 <project xmlns="http://maven.apache.or

Pandas模組入門——Series結構介紹

Pandas模組是Python用於資料匯入及整理的模組,對資料探勘前期資料的處理工作十分有用,因此這些基礎的東西還是要好好的學學。 Pandas模組的資料結構主要有兩:1、Series ;2、DataFrame 這次就先了解一下Series結構。 1.

python入門

html pre uic 程序 添加 -a 控制臺 命令 成了 第一步,我們先來安裝Python,博主選擇的版本是最新的3.4.2版本。windows下面的Python安裝一般是通過軟件安裝包安裝而不是命令行,所以我們首先要在Python的官方主頁上面下載最新的Python

node.js

io模型 對象 交互 開發 理解 後端 google 異步io tex 一、nodejs是什麽??  我們知道JavaScript是運行在瀏覽器中的,瀏覽器為它提供了一個上下文(context),從而讓JavaScript得以解析執行。 nodeJS其實可以這麽理解,它是另

23種設計模式介紹---- 創型模式

接口 ret static 深復制 return 對象 相互 object c png 由於設計模式篇幅比較大,如果在一篇文章講完所有的設計模式的話不利於閱讀。於是我把它分為三篇文章 23種設計模式介紹(一)---- 創建型模式 23種設計模式介紹(二)---- 結構型模

數據庫入門

數據庫入門 數據庫軟件 java平臺 1.數據保存 數據保存在內存: 優點: 存取速度快 缺點: 數據不能永遠保存 數據保存在文件: 優點: 數據永遠保存 缺點:

HtmlParser學習筆記-- 創Parser對象

nco 修改 英文 text aid 意思 charset 網頁 第一個 首先 ,介紹下HTMLParser的核心類,org.htmlparser.Parser類,這個類實際完成了對於HTML頁面的分析工作。主要的構造函數如下: public Parser ();

HTML5入門—— 基本標簽&表格

詳細信息 樣式設置 定位 content 瀏覽器中 解釋 加載 郵箱 常用 一、HTML簡介 超文本標簽語言,即網頁的源碼。而瀏覽器就是翻譯解釋HTML源碼的工具。 二、HTML Head部分 <1>Head的作用

ServiceStack.OrmLite 入門

repo pan ssi database open() clas demo int() mas 軟件環境: Win7 x64 SP1 SQL Server 2008r2 Visual Studio 2017 Professional 目標:取出示例數據庫

磁盤及文件管理系統入門

fs 硬盤 uefi&gpt linux磁盤及文件系統管理初步目錄 1.磁盤及文件系統管理 2.機械磁盤結構 3.mknod命令 4.parted命令 5.GPT分區&UEFI 6.二進制單位Linux系統管理磁盤分區及文件系統管理RAIDLV

Docker入門

docker cgroup aufs unionfs dm md 一、虛擬化技術分類1.內核級別的虛擬化Xen或者Kvm [vm.user] [vm.kern].... //這種虛擬化技術隔離效果最好,但是性能消耗也高 =========== VMM ====== 硬件 vm的us

socket 網絡編程高速入門教你編寫基於UDP/TCP的服務client通信

unix fflush ins tracking ng- main ack ndt accept 由於UNIX和Win的socket大同小異,為了方便和大眾化,這裏先介紹Winsock編程。 socket 網絡編程的難點在入門的時候就是對基本函數的了解和使用,由於

Swift入門——基本的語法

應該 不支持 .text pre each abc add 語法 高精度 近期開始學習swift。把學習的過程和總結整理成一個系列。方便日後回想總結。 基本的語法 基礎語法 swift中每一行結束後不須要加分號。多個語句在同一行內須要用分好

IntelliJ IDEA的使用入門

servers dep exec file idea ont tle cat tex 問題1:Run/Debug Configurations 中點擊“+”號沒有tomcat server選項 解決方法:File--->Setting--->Build,Exec