一、什么是node.js?
它是可以運行JavaScript的服務器,用javascript語言編寫的后端,只是它的開發語言是JavaScript
二、安裝
1、node.js的特性:
- 非阻塞IO模型
- 時間驅動
2、運用的場景:
- 高並發單例模式業務 - 實時場景 - 聊天、電子商務、視頻直播等
3、安裝地址:
http://nodejs.cn/ 判斷是否安裝成功 node -v 進入編輯狀態:node+回車,可以進行一些運算 退出編輯模式:ctrl+d或者ctrl+c兩次

4、npm是一個包管理器,其實是一個命令。使用它來安裝或者卸載包
首先進行項目初始化:npm init (快速初始化:npm init -y),會生成文件:package.json
npm install 包的名字 --save-dev npm install express --save-dev:把依賴包增加到開發環境下 npm install express npm install express --save :把依賴包增加到運行環境下
express框架:
它是一個基於node.js平台的web應用框架,靈活方便,能夠快速創造出服務端應用程序
npm install express --save-dev
三、簡單使用
模板化開發:
我們在node.js_demo目錄下初始化,並安裝了express后,在node.js_demo目錄下建立stu,js寫上js代碼,我們在cmd中可以輸入js文件的名字,可以直接執行js代碼

我們新建一個stu2.js,想在stu2中引用stu中的數據,就該按下面的方式做
stu.js
var man='我是一個人'; module.exports=man;//對外開放接口 console.log(man)
stu2.js
var temps = require('./stu'); //引用文件,在js文件中加./代表同級目錄 console.log(temps);
那么如何執行文件呢? node 文件名.js =====》node 文件名

四、用node.js簡單的做一個登錄
login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width"> <title>Title</title> <script src="jquery.js"></script> <style> span{ color: red; } </style> </head> <body> <div> <form action="" method="post"> <p>用戶名:<input type="text" placeholder="username" id="username"></p> <p>密碼:<input type="password" placeholder="password" id="password"></p> <input type="button" value="提交" onclick="login()"> <span></span> </form> </div> <script> function login() { var username = $("#username").val(); var password = $("#password").val(); var url = "http://localhost:8080/login"; console.log(username,password); $.post(url, {username,password}, function (response) { console.log(response); if (response){ $("span").html("登陸成功") }else{ $("span").html("登錄失敗") } }) } </script> </body> </html>

飄紅報錯原因,默認使用的是ES5.1

我們將其改為ES6后,即可恢復正常
server.js
var express = require("express"); //引用包 var query = require("querystring"); var app = express(); //初始化 app.listen("8080",function () { //監聽 console.log("服務已經啟動,端口是8080"); }); //通過post請求,服務端接收到是流數據,必須把流數據通過“+”轉化成字符串 //如:reqData += data2; //new Buffer("username=admin&password=123456") //<Buffer 75 73 65 72 6e 61 6d 65 3d 61 64 6d 69 6e 26 70 61 73 73 77 6f 72 64 3d 31 32 33 34 35 36> var datas2 = ""; app.post("/login",function (request,response) { response.header("Access-Control-Allow-Origin", "*"); //允許跨域請求,*代表所有 request.on("data",function (datas) { //接收用戶發來的數據,里面的data是不變的,就得叫data datas2 = ""; console.log(datas); ; //<Buffer 75 73 65 72 6e 61 6d 65 3d 25 45 38 25 38 33 25 41 31 25 45 35 25 38 36 25 42 32 26 70 61 73 73 77 6f 72 64 3d 31 32 33> // >這樣打印的結果是Buffer 類型的,所以我們得拼接一下,用querystring這個模塊轉成字符串 datas2 += datas; }) request.on("end",function () { //接收用戶發來的數據之后開始解析 console.log(datas2); // username=%E8%83%A1%E5%86%B2&password=123 console.log(query.parse(datas2)); //轉換成json格式 { username: 'admin', password: '123' } var username = query.parse(datas2).username; var password = query.parse(datas2).password; if(username == "胡沖" && password == "123"){ response.send(true); //如果登錄成功就把數據返回給前端 } else { response.send(false); } }) });
var express = require("express"); var app = express(); app.listen(8000,function () { console.log("服務器已經啟動,端口號是8000!"); }) app.get("/search",function (request,response) { //跨域請求 response.header("Access-Control-Allow-Origin", "*"); var username = request.query.username; console.log(username); if(username == "admin") { response.send(true); } else { response.send(false); } })

注意:
啟動服務器的時候 ===>node server.js
關閉時 ===> crtl+c
每次修改server.js里的代碼后都得重啟
