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模塊;