Node express框架

一、基本框架

  1. 安裝express框架:cnpm install express --save

  2. 步驟:

(1)導入
(2)實例化express
(3)監聽一個端口 8100 服務可以正常啓動
(4)配置後臺系統路由 app.get(…)

var express=require("express");
var app=new express();
app.get("/",function(req,res){
    res.send("首頁");
});
app.get("/regest",function(req,res){
    res.send("註冊");
});
app.get("/login",function(req,res){
    res.send("登錄");
});
app.listen(8100);

二、express裏的動態路由傳參

直接在路由路徑後面配置參數(類似於 /:id)

var express=require("express");
var app=new express();
app.get("/:id/:name",function(req,res){
    //路由的動態傳值  使用params接收傳遞參數
    var id=req.params.id;
    var name=req.params.name;
    res.send("首頁---"+id+"---"+name);
});
app.listen(8100);

三、express裏的路由get傳參(類似於?id=1&name=2)

var express=require("express");
var app=new express();
app.get("/regest",function(req,res){
    var id=req.query.id;
    var name=req.query.name;
    res.send("註冊---"+id+"---"+name);
});
app.listen(8100);	

四、express裏使用靜態文件託管

  1. 設置靜態資源文件
var express=require("express");
var app=new express();

//設置靜態資源文件
app.use(express.static("static"));

在這裏插入圖片描述

  1. 設置虛擬靜態目錄
var express=require("express");
var app=new express();

app.use(express.static("public"));  //給當前express框架設置一個靜態資源目錄爲public文件
//虛擬靜態目錄    如果路徑爲 /static/1.jpg  則會在public/1.jpg找
app.use("/static",express.static("public"));  //直接將express裏面的靜態資源文件public動態修改爲static

在這裏插入圖片描述

五、express框架渲染ejs模板

  1. 使用
  • express中使用
var express=require("express");
var ejs=require("ejs");
var app=new express();
app.set("view engine","ejs");  //模板引擎設置爲ejs
  • 在express中使用ejs,文件組織遵循express

.views——放置動態模板
.public——放置靜態網頁
.layouts——放置佈局文件

  1. express框架使用ejs模板可以直接使用

渲染的時候直接找模板引擎的名稱,即res.render(“index”) 裏面直接寫模板的名字

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

var app=new express();
app.use(express.static("public"));  
app.use("/static",express.static("public"));

//配置express框架  在views文件裏使用ejs模板   
app.set("view engine","ejs");
app.get("/:id/:name",function(req,res){
    res.render("index");
});
app.listen(8100);

在這裏插入圖片描述

  1. 通過express框架往index裏面渲染數據

App.js:

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

var app=new express();
app.use(express.static("public"));  
app.use("/static",express.static("public"));

app.set("view engine","ejs");  //模板引擎設置爲ejs
app.get("/:id/:name",function(req,res){
    //通過express框架往index裏面渲染數據
    var id=req.params.id;
    var name=req.params.name;
    res.render("index",{
        id:id,
        name:name
    });
});
app.listen(8100);

index.ejs:

<body>
    <div>首頁</div>
    <div><%=id%></div>
    <div><%=name%></div>
</body>
  • 框架渲染傳參與ejs.render()是一樣的

六、模擬express框架裏的路由

App.js:

var http=require("http");
var app=require("./router");
http.createServer(app).listen(8100);
//註冊路由
app.get("/",function(req,res){
    res.send("首頁");
});
app.get("/login",function(req,res){
    res.send("login");
});

router.js:

var url=require("url");
var obj={};
var app=function(req,res){
    res.send=function(data){
        res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        res.end(data);
    }
    var path=url.parse(req.url).pathname;
    if(path=="/favicon.ico") return;
    if(obj[path]){
        obj[path](req,res);
    }else{
        res.end("404");
    }
}
app.get=function(string,callback){
    obj[string]=callback;
}
module.exports=app;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章