Node.js

Node.js網(wǎng)址:https://github.com/Yuki-Minakami/BookExample

一.1.Node.js,用js語(yǔ)言創(chuàng)建后臺(tái)服務(wù)器;(https://nodejs.org);

Node適合做功能性的;

2.在數(shù)據(jù)庫(kù)中執(zhí)行的命令:
1.>node -v檢測(cè)是否安裝node.js;
2.>切換到d盤,切換盤符 d:
3.>進(jìn)入文件夾 ,cd表示進(jìn)入文件夾, cd node.js
4.>執(zhí)行某個(gè)文件,node 文件名
二.node js中的模塊:(原生的node.js)
1.http模塊,創(chuàng)建服務(wù)器,開啟一個(gè)服務(wù);

第一步:引入http模塊;var http=require('http');
第二步:使用http模塊創(chuàng)建一個(gè)服務(wù);

var server=http.createServer(function(){
console.log('服務(wù)器開啟了');
}

第三步:監(jiān)聽一個(gè)端號(hào);

server.listen(8080);
2.fs模塊

A.
第一步:引入fs模塊;

var fs=require('fs');

第二步;讀取文件

fs.readFile('1.txt',function(err,data){
console.log(err);
if(err){
console.log('讀取失敗');
}else{
console.log(data.tostring());
}
})

B.寫文件

fs.writeFile('文件名',‘內(nèi)容’,function(err){
console.log(err);
})

3.//前端客戶 后臺(tái)交互
// get post 對(duì)象
//把前端提交數(shù)據(jù)轉(zhuǎn)換成對(duì)象格式
//1.手動(dòng)實(shí)現(xiàn)
//2.querystring 模塊

   // uname=jack&upwd=123
   querystring.parse('uname=jack&upwd=123');
   console.log()//{uname:jack,upwd:123}

4.模塊url
解析get方式發(fā)送的數(shù)據(jù) /?uname=jack&upwd=123
方法1:手動(dòng)寫(利用split);
方法2:querystring模塊;
方法3:url模塊;
url.js:

const http=require('http');
const url=require('url');
var server=http.createServer(function(req,res){
    var obj=url.parse(req.url,true);
    console.log(obj);
});
server.listen(8080);

form.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <form action="http://localhost:8080" method='GET'>
            <p>用戶名:<input type="" name="uname" id="" value="" /></p>
            <p>密碼<input type="" name="upwd" id="" value="" /></p>
            <p><input type="submit" name="" id="" value="提交" /></p>
        </form>
    </body>
</html>

5.解析post方式發(fā)送的數(shù)據(jù)
post : get傳輸數(shù)據(jù)量小 post傳輸?shù)臄?shù)據(jù)量大
post.js:

// get post
// 1.手動(dòng)  2.queryString 3.url
//post : get傳輸數(shù)據(jù)量小   post傳輸?shù)臄?shù)據(jù)量大
const http=require('http');
const queryString=require('querystring')
var server=http.createServer(function(req,res){
   
    var str='';
    req.on('data',function(data){//每次發(fā)送的數(shù)據(jù) data代表每次發(fā)送的數(shù)據(jù)
      //小段數(shù)據(jù)  data  data  data  
      str+=data;
    })
    req.on('end',function(){//數(shù)據(jù)已經(jīng)發(fā)送結(jié)束
        var post=queryString.parse(str);
         console.log(post);//uname=jack&upwd=123
    })
});
server.listen(8080);

post.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
   <form action='http://localhost:8080' method='post'>
      <p>同戶名:<input type="" name="uname"></p>
      <p>密碼:<input type="" name="upwd"></p>
      <p><input type="submit" value='提交'></p>
   </form>
</body>
</html>

6.總結(jié):

// http  搭建服務(wù)器
const http=require('http');
//fs模塊  操作文件
const fs=require('fs');
// querystring
const querystring=require('querystring');
var server=http.createServer(function(req,res){//req請(qǐng)求  res響應(yīng)
    //響應(yīng) res
       res.write('相應(yīng)的內(nèi)容');
       res.end();//響應(yīng)結(jié)束
    //req
       req.url//請(qǐng)求的路徑

    //fs  讀取文件   寫文件
     fs.readFile('文件名',function(err,data){//err 讀取失敗   data讀取成功數(shù)據(jù)
         if(err){
            res.write('404');
         }else{
            res.write(data);
         }
     })

    //寫文件
    fs.writeFile('文件名','內(nèi)容',function(err){
        console.log(err);
    })

   //前端客戶  后臺(tái)交互 
   // get  post     對(duì)象
   //把前端提交數(shù)據(jù)轉(zhuǎn)換成對(duì)象格式
   //1.手動(dòng)實(shí)現(xiàn)
   //2.querystring  模塊
   // uname=jack&upwd=123
   querystring.parse('uname=jack&upwd=123');
   console.log()//{uname:jack,upwd:123}

})
server.listen(8080);

模塊url:(簡(jiǎn)單實(shí)例)
// 解析get方式發(fā)送的數(shù)據(jù) /?uname=jack&upwd=123 {uname:jack upwd:123}
//手動(dòng)寫
//querystring 
//url  模塊
const ull=require('url');
var obj=ull.parse('http://www.baidu.com/index?uname=jack&upwd=123',true);
//console.log(obj);
console.log(obj.query);
console.log(obj.pathname);

1.處理get發(fā)送的數(shù)據(jù)時(shí)用url模塊; 2.處理post發(fā)送的數(shù)據(jù)時(shí),用querystring模塊; 3.處理文件發(fā)送的數(shù)據(jù)時(shí)用fs模塊;

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 個(gè)人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)。如有錯(cuò)誤歡迎斧正 目錄 簡(jiǎn)書好像不支持錨點(diǎn)、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,651評(píng)論 1 37
  • Node.js是目前非常火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    Myselfyan閱讀 4,203評(píng)論 2 58
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宮若石閱讀 1,240評(píng)論 0 1
  • Node.js Stream(流) Stream 是一個(gè)抽象接口,Node 中有很多對(duì)象實(shí)現(xiàn)了這個(gè)接口。例如,對(duì)h...
    FTOLsXD閱讀 698評(píng)論 0 2
  • 總結(jié)一: [node.js總結(jié)](http://www.cnblogs.com/Darren_code/archi...
    xiumeiii閱讀 2,016評(píng)論 0 14

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