• Express下ejs的视图模板引擎的建立


     写在前面

    由于Express升级到4.0,将ejs的用法忽略,改为用户自定义形式,所以要引入库index.js作为引擎,来支持ejs的模板引擎(点击下载)。

    首先是建立一个名字叫nodeitem,引擎为ejs的express模板

    $ express  -e nodeitem

    $     cd nodeitem

    自动安装所指定的依赖

    $     npm install                 

    $     ls

    把index.js文件上传到expand_modules/ejs里面去,上传文件可安装lrzsz

    $     tree  expand_modules/

    $     vim  app.js

    因为我使用的的express3,我的app.js不是入口文件,退出vim

    $    cat package.json

    我的入口文件是 ./bin/www,想要修改也不难,只需要在app.js文件里添加如下代码即可

     app.set("port",process.env.PORT || 3000);
      http.createServer(app).listen(app.get("port"),function (){
      console.log("this is"+app.get("port"));
      })

        $    node app.js 

       建立模板

     $     vim  app.js

    //引入引擎
    var engine = require("./expand_modules/ejs/index.js");
    //改变中间量及参数
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'ejs');
    app.set("port",process.env.PORT  || 2000);
    app.use(favicon());
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded());
    app.use(cookieParser()); 
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(app.router);
    //在app中调用engine函数改造引擎,模板引擎在显示层的名字叫layout.ejs
    app.engine("ejs",engine);
    app.locals._layoutFile="layout";
    //路由控制w
    app.get('/', routes.index);
    app.get("/abc",routes.abc);
    app.get("/u/:user",routes.user);
    app.get("/post",routes.post)
    app.get("/reg",routes.reg);
    app.get("/doReg",routes.doReg);
    app.get("/login",routes.login);
    app.get("/doLogin",routes.doLogin);
    app.get("/logout",routes.logout);
    app.get('/users', users.list);

        路由选择

           $     cd routes && vim index.js

      

      查看显示层

      $     cd views  &&  ls 

          

       $    vim layout.js

       ejs文件类似于html文件,只需要在html文件的<body>标签里面加入自己设置的模板元素即可。下面是一个例子,最关键的是要在<body>标签里面加入<%-body%>  为了显示原始HTML内容

       

      $     vim  login.ejs

          

       只需要把你想要添加到layout模板里面的html文件的<body>标签内容写入ejs文件即可   模板layout中<%-body%> 会自动解析为html,并予以显示。上面文件只是一个例子。

      写在最后

         ejs引擎书写方式特别像html,但是他有一个缺点就是不支持模板继承,想要模板继承可以使用jada引擎。要想知道两者更加详细的区别,这是飞机票

       

  • 相关阅读:
    FJUT3565 最大公约数之和(容斥)题解
    FJUT3568 中二病也要敲代码(线段树维护区间连续最值)题解
    BZOJ 2252 矩阵距离
    BZOJ 1047 理想的正方形
    BZOJ 1486 最小圈
    BZOJ 2083 Intelligence test
    BZOJ 1045 糖果传递
    BZOJ 3450 Easy
    BZOJ 4318 OSU!
    BZOJ 1954 The xor-longest Path
  • 原文地址:https://www.cnblogs.com/dirkhe/p/6847407.html
Copyright © 2020-2023  润新知