Generador expreso expreso EJs generador de motor de plantillas
Un andamio, utiliza principalmente para generar rápidamente código esqueleto
- Instalación NPM instalar -g Express-generador
- Para su instalación depende entrada Instalación
- En la plantilla de directorio actual, ejs motor de expresar --view = ejs ./
- Empezar a correr NPM //package.json comenzar con una configuración por defecto
análisis de clase plantilla EJS:
bin / www.js
archivo de entrada, que es el principal logro de las tres funciones
- servicio abierto, establecer el puerto
- Analítico y el puerto de escucha, la ventana de impresión para la consola
- monitorear anormal
app.js
Los principales servicios de archivos
- El manejo de excepciones
- tala
- La navegación en rutas
//异常处理
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
//日志处理模块
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
// view engine setup
//指定模板存储的位置
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
next(createError(404, 'file not found!'));
});
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
//全局的配置信息
res.locals.message = err.message;
//根据当前环境差异化报错信息,区分开发环境和生成环境
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(500);
//参数是模板的名字
res.render('error');
});
module.exports = app;
motor de plantillas EJS
Acerca de EJS
Un simple y eficaz lenguaje de plantillas y plantillas a través de los datos, puede generar html texto de la etiqueta
de una biblioteca JavaScript, y luego se puede ejecutar el cliente y el servidor al mismo tiempo,
característica
- compilación rápida y renderizado
- etiquetas de plantillas simples
- Encargo etiqueta delimitador
- texto de apoyo contiene
- Los soportes B, C terminal usando
- caché estática plantilla
- Respalda la opinión expresa del sistema
función miembro EJS
Render (path, datos, [opción]): ruta es la ruta plantilla, los datos se pasan datos de plantilla, opción es una opción de configuración
Etiquetas de usadas comúnmente
- <%> Control de flujo Tag, utilizado como comúnmente en el ciclo forEach
- <% =%> Salida Tag, para la extracción de datos se emite a la html
- <% -%> salida tag se pueden usar incluyen
- <% #%> etiquetas de comentario
Caso EJS
app.js
var app = require('express')();
//设置视图
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
//配置路由级中间件,在路由中测试
app.use('/test',testRouter);
module.exports = app;
Test.js
var router = require("express").Router();
router.get('/include', (req, res) => {
//跳转到views目录下include.ejs
res.render('include', { user: [{ "name": "aaa" }, { "name": "bbb" }] });
})
module.exports = router;
include.ejs
<ul>
<% user.forEach((item)=>{ %>
<%- include('show',{user:item}) %>
<% })%>
</ul>