Skip to content

eggjs/egg-view-ejs

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

egg-view-ejs

NPM version NPM quality NPM download

Continuous Integration Test coverage

egg view plugin for ejs.

Install

$ npm i egg-view-ejs --save

Usage

// {app_root}/config/plugin.js
exports.ejs = {
  enable: true,
  package: 'egg-view-ejs',
};

// {app_root}/config/config.default.js
exports.view = {
  mapping: {
    '.ejs': 'ejs',
  },
};

Create a ejs file

// app/view/hello.ejs
hello <%= data %>

Render it

// app/controller/render.js
exports.ejs = async ctx => {
  await ctx.render('hello.ejs', {
    data: 'world',
  });
};

The file will be compiled and cached, you can change config.ejs.cache = false to disable cache, it's disable in local env by default.

Include

You can include both relative and absolute file.

Relative file is resolve from current file path.

// app/view/a.ejs include app/view/b.ejs
<% include('b.ejs') %>

Absolute file is resolve from app/view.

// app/view/home.ejs include app/view/partial/menu.ejs
<% include('/partial/menu.ejs') %>

Layout

You can render a view with layout also:

// app/view/layout.ejs

<% body %>

// app/controller/render.js
exports.ejs = async ctx => {
  const locals = {
    data: 'world',
  };

  const viewOptions = {
    layout: 'layout.ejs'
  };

  await ctx.render('hello.ejs', locals, viewOptions);
};

Configuration

see config/config.default.js for more detail.

Questions & Suggestions

Please open an issue here.

License

MIT