1、consolidate
可以说是一个各种模板引擎的结合体。它包括了我们之前的jade
和ejs
。通过配置就可以使用多种模板引擎。我们这里使用一个简单的例子。
——我们的文件目录结构以及直接写在html里面的模板,如下图:
——在server.js
里面:
const server = require('express')();
const consolidate = require('consolidate');
// 设置把模板以html形式输出
server.set('view engine','html');
// 模板位置
server.set('views','./views');
// 使用ejs引擎去解析html,这里可以设置多种多对
server.engine('html',consolidate.ejs);
server.get('/index',function(req,res){
res.render('index.html',{username:'eric'});
});
server.listen(1337);
——然后访问http://localhost:1337/index
这个路径,页面结果如下图:
2、router
模块是express
自带的,也就是说我们安装了express
就可以直接使用了。
——在具体实战中再体会路由的其他用法。下面尽管分开模块了写了,但还是都写在同一个文件里面,会显得臃肿。
const express = require('express');
var server = express();
// routerUser相当于创建的一个子server
var routerUser = express.Router();
// 然后把这个子server和某个路径绑定
server.use('/user',routerUser);
// 然后基于这个子server来写,才能拦截这个路径的所有请求
// http://localhost:1337/user/list
routerUser.get('/list',function(req,res){
res.send("user list");
});
// http://localhost:1337/user/detail
routerUser.get('/detail',function(req,res){
res.send("user detail");
})
var routerPost = express.Router();
server.use('/post',routerPost);
// http://localhost:1337/post/list
routerPost.get('/list',function(req,res){
res.send("post list");
})
// http://localhost:1337/post/detail
routerPost.get('/detail',function(req,res){
res.send("post detail");
});
server.listen(1337);