zoukankan      html  css  js  c++  java
  • express路由、静态托管、ejs模板引擎

    -

    app.js

    配置不同的路由

    const express = require("express")
    const querystring = require("querystring")
    
    const app = express();
    
    // http://127.0.0.1:3000/?name=user&age=12
    app.get("/",(req,res) => {
      var query = req.query;
      console.log(query);//{ name: 'user', age: '12' }
      res.send("你好express");
    
    })
    
    app.get("/register",(req,res) => { //get 主要用于显示数据
    
      res.send("注册页面");
      
    })
    
    app.post("/doLogin",(req,res) => { //post 主要用于增加数据
      
      res.send("执行登录");
      
    })
    
    app.put("/editUser",(req,res) => { //put 请求主要用来修改数据
      res.send("修改用户");
      
    })
    
    app.delete("/deleteUser",(req,res) => { //delete 请求主要用来删除数据
      res.send("删除用户");
      
    })
    
    //配置多级路由
    app.get("/admin/user/add",(req,res) => { 
    
      res.send("多级路由");
      
    })
    
    //配置动态路由
    app.get("/artical/:id",(req,res) => { 
      var id = req.params["id"];
      console.log(id);
      res.send("多级路由"+id);
      
    })
    
    app.listen(3000)

    ejs模板使用、静态资源托管

    /**
     * express中使用ejs模板引擎
     * express默认集成了ejs
     * 1、安装 cnpm install ejs --save
     * 2、app.set("view engine","ejs")
     * 3、使用  默认加载模板引擎的文件夹是views
     * res.render("index",{
     *  
     * })
     * 
     * 如何将模板的.ejs后缀设置成.html后缀    没有下面的设置 那么模板的后缀名就用.ejs
     * 1、引入ejs  const ejs = require("ejs") 不用安装ejs哦
     * 2、app.engine("html",ejs.__express)
     * 3、app.set("view engine","html")
     * 
     * 
     * 配置静态托管
     * app.use(express.static('public'))
     * 也可以配置虚拟目录
     * app.use('/static',express.static('public'))  正常访问public下的静态资源 前面需要加上./static
     */
    
    const express = require("express");
    const ejs = require("ejs");
    const app = express();
    // 配置静态资源托管
    app.use(express.static("static"))
    // 使用ejs模板引擎 并设置模板后缀为.html后缀
    app.engine("html",ejs.__express)
    app.set("view engine","html")
    // 指定模板位置(默认是views)  可以省去行代码
    app.set("views",__dirname+'/views')
    
    app.get("/",(req,res) => {
      let title = "你好ejs"
    
      res.render("index",{
        title:title,
      })
    
    })
    
    app.get("/news",(req,res) => {
      let userInfo = {name:"张三",age:18};
      let artical = "<h3>我是一个html标签</h3>"
      let list = [111,222,333]
      
      res.render("./news",{
        userInfo,
        artical,
        flag:true,
        score:Math.random()*10,
        list,
      })
    
    })
    
    app.listen(3000)

    news.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, initial-scale=1.0">
      <title>news</title>
      <link rel="stylesheet" href="css/base.css">
    </head>
    <body>
        <h2>绑定数据</h2>
        <div><%=userInfo.name%>---<%=userInfo.age%></div>
        
        <h2>解析html标签</h2>
        <div><%-artical%></div>
    
        <h2>条件判断</h2>
        <%if(flag == true){%>
          <div>flag == true</div>
        <%}%>
    
        <%if(score > 6){%>
          <div>及格</div>
        <%}else{%>
          <div>不及格</div>
        <%}%>
    
        <h2>循环遍历</h2>
        <ul>
          <%for(var i = 0;i < list.length;i++){%>
            <li><%=list[i]%></li>
          <%}%>
        </ul>
    
        <h2>引入公共组件</h2>
        <%-include('./footer.html')%>
        
    </body>
    </html>

    -

  • 相关阅读:
    日期时间基本知识
    VScode 常用操作
    js实现图片的Blob base64 ArrayBuffer 的各种转换
    window.postMessage()实现(iframe嵌套页面)跨域消息传递
    软件工程概论个人总结
    软件工程学习进度表(第十六周)
    《构建之法》阅读笔记
    软件工程学习进度表(第十五周)
    《人月神话》阅读笔记06
    《人月神话》阅读笔记05
  • 原文地址:https://www.cnblogs.com/fqh123/p/15227550.html
Copyright © 2011-2022 走看看