官網: https://nodejs.org/en/ http://nodejs.cn/ Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。 Node.js 的包管理器 npm,是全 ...
官網: (下載安裝nodejs)
https://nodejs.org/en/
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。
Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。
Node.js 的包管理器 npm,是全球最大的開源庫生態系統。
後端流行語言:
java #C node.js
驗證版本:
node -v或--version
npm -v或--version或--v或-version
js組成:
1、DOM
2、BOM
3、ECMAScript
node文件的命名:
不能用:node.js 或 nodejs.js
node 用來寫伺服器
http 的埠:80
https 的埠:433
創建伺服器:3步
1.引入模塊
2.創建服務
3.監聽埠
readFile 非同步讀取文件(有回調函數)
readFileSync 同步讀取文件(無回調函數)
ajax:Asynchronous JavaScript and XML
異常處理try...catch
try{
//有可能出錯的代碼
}catch(e){//error
//補救的代碼 或 提示信息
}
fs.readFile("地址、路徑"[,編碼],回調函數(err,data){...});
fs.readFileSync("地址、路徑"[,編碼]);
Buffer對象
utf-8/utf8/data+""/data.toString();
exp:創建伺服器:
//1.引入模塊
var http = require("http");
var fs = require("fs");
//2.創建服務
var server = http.createServer(function(req,res){
var url = req.url;
console.log("url:",url);
fs.readFile("www"+url,function(err,data){
if (err) {
res.end("404");
}else{
res.end(data);
}
});
});
//3.監聽埠
server.listen(9000,function(){
console.log("伺服器已開啟:http://localhost:9000");
});
伺服器運行:
1.打開伺服器:
2.瀏覽器訪問:
3.伺服器響應:
登錄註冊
user.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<script src="jquery.js"></script>
<script>
$(function(){
var $oUser = $("#username");
var $oPass = $("#pass");
var $oLogin = $("#login");
var $oReg = $("#reg");
$oLogin.click(function(){
$.ajax({
url:"/login",
data:{
user:$oUser.val(),
pass:$oPass.val()
},
dataType:"json",
success:function(json){
console.log(json);
}
});
});
$oReg.click(function(){
$.ajax({
url:"/reg",
data:{
user:$oUser.val(),
pass:$oPass.val()
},
dataType:"json",
success:function(json){
console.log(json);
}
});
});
});
</script>
<body>
用戶名:<input id = "username" type="text" value="aaa"/><br />
密碼: <input id ="pass" type="text" value="123"/><br />
<input id = "login" type="button" value="登錄"/>
<input id = "reg" type="button" value="註冊"/>
</body>
</html>
user.js
var http = require("http");
var fs = require("fs");
var users = {aaa:123};
var server = http.createServer(function(req,res){
var url = req.url;
console.log("url:",url);
var GET = {};
if(url.indexOf("?") != -1){//介面
var arr1 = url.split("?");
url = arr1[0];
var arr2 = arr1[1].split("&");
for(var i = 0; i < arr2.length; i++){
var arr3 = arr2[i].split("=");
GET[arr3[0]] = arr3[1];
}
console.log("url:",url,"GET:",GET);
if(url == "/login"){
var username = GET.user;
var password = GET.pass;
if(!users[username]){
res.end('{"error":0,"msg":"用戶名或者密碼不正確"}');
}else{
if(users[username] == password){
res.end('{"error":0,"msg":"登錄成功"}');
}else{
res.end('{"error":0,"msg":"用戶名或者密碼不正確"}');
}
}
}else if(url == "/reg"){
var username = GET.user;
var password = GET.pass;
/*res.end('{"error":1,"msg":"reg"}');*/
if(users[username]){
res.end('{"error":1,"msg":"用戶名存在"}');
}else{
users[username] = password;
res.end('{"error":1,"msg":"註冊成功"}');
}
}
}else{
fs.readFile("www"+url,function(err,data){//文件
if(err){
res.end("404");
}else{
res.end(data);
}
})
}
});
server.listen(9000,function(){
console.log("伺服器已打開");
})
user2.js:引入url模塊直接獲取json對象
var http = require("http");
var fs = require("fs");
var modUrl = require("url");
var users = {aaa:123};
var server = http.createServer(function(req,res){
var url = req.url;
console.log("url:",url);
var GET = {};
var urlObj = modUrl.parse(url,true);
url = urlObj.pathname;
GET = urlObj.query;
if(url == "/login"){
var username = GET.user;
var password = GET.pass;
if(!users[username]){
res.end('{"error":0,"msg":"賬號或密碼輸入錯誤!"}');
}else{
if(users[username] == password){
res.end('{"error":0,"msg":"輸入正確"}');
}else{
res.end('{"error":0,"msg":"賬號或密碼輸入錯誤!"}');
}
}
}else if(url == "/reg"){
var username = GET.user;
var password = GET.pass;
if(users[username]){
res.end('{"error":1,"msg":"用戶名已存在,請重新輸入"}');
}else{
users[username] = password;
res.end('{"error":1,"msg":"註冊正確"}');
}
}else{
fs.readFile("www" + url,function(err,data){
if(err){
res.end("404");
}else{
res.end(data);
}
})
}
});
server.listen(9000);
運行效果: