1. 程式人生 > >node框架express基礎

node框架express基礎

.get code js文件 -s -- 地方 文件中 document post方法

Express是一個基於Node.js平臺的web應用開發框架,在Node.js基礎之上擴展了web應用開發所需要的基礎功能,從而使得我們開發Web應用更加方便、更加快捷。

註意:我們用jQuery時,jquery對象和dom對象 方法是不能混用的。但Express中,可以用一些原生node。

比如在express中用了get方法,res.send 可以寫成 res.end。

不過send中是不需要轉成str或者buffer的,並且不區分大小寫。

下載Express

npm install express --save

創建一個express應用:

let express = require("express");
let app 
= express();

模板引擎 ejs/jade 下面使用ejs

在Express中推薦使用模板引擎

用前也需要下載 npm install ejs --save

模板引擎的使用:

var ejs = require("ejs");

//模板
var string = "今天星期<%= day %>,天氣真好";
//數據
var data = {
    day : "三"
}
// 數據綁定
var html = ejs.render(string,data);
console.log(html); //今天星期三,天氣真好

通過ejs模板:

1.在後臺寫好數據

var express = require("express");
var app = express();
//不需要引入ejs、fs、http
app.set("view engine","ejs");

app.get("/",function(req,res){
    var data = {
        day:"三",
        news:[
            {"title":"haha","num":300},
            {"title":"xixi","num":100},
            {"title":"hehe","num":100},
        ]
    }
    res.render(
"haha",data) }) app.listen(3000);

2.創建views文件夾,在views文件夾中創建 haha.ejs 文件

3.在haha.ejs文件中寫模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>今天星期<%= day %>,天氣真好</h1>
    <ul>
        <%
            for(var i = 0;i < news.length;i++){         
        %>
            <li><%= news[i].title %></li>
            <li><%= news[i].num %></li>
        <%   
            }
        %>
    </ul>
</body>
</html>

模板中語法格式如上。

在頁面中顯示結果:

今天星期三,天氣真好

  • haha
  • 300
  • xixi
  • 100
  • hehe
  • 100

Express中間件

用中間件中的內置方法static來配置靜態伺服

app.use(express.static(__dirname + ‘/app‘))

瀏覽器中訪問: http://localhost:3000/ 展示的/app/index.html內容

瀏覽器中訪問: http://localhost:3000/hello.html 展示的/app/hello.html內容

中間件基本用法:

在下面這種情況下,第二個地址永遠進不去,因為下面地址的路由滿足上面的正則,所以按照代碼執行順序,到上面get方法就停止了。只會顯示 用戶+編號界面

var express = require("express");
var app = express();

app.get("/:username/:id",function(req,res,next){
res.send("用戶+編號界面")
})
app.get("/admin/login",function(req,res){ //這個地方永遠進不去
res.send("管理員登錄界面")
})

app.listen(3000);

但如果給上面的get方法中加上next()

app.get("/:username/:id",function(req,res,next){
    next()
})

再在/admin/login中顯示的就是 管理員登錄界面

如果在第一個get方法打印1,第二個get方法打印2,則都可以打印出來。

用Express獲取get參數

var express = require("express");
var app = express();

app.get("/",function(req,res){
    console.log(req.query);
    res.send("OK")
})

app.listen(3000)

原生獲取方法:url.parse(req.url,true).query

用Express獲取post參數

1.設置post請求的請求頭

var bodyParser = require("body-parser");

app.use(bodyParser.urlencoded({ extended: false })); //post請求的請求頭

2.在post方法中打印 req.body 即可

req.body 輸出的是 一個對象

比如 {name:"123456",age:"4156789"}

node框架express基礎