初次学习express+ejs小记

1、全局安装 express

  我安装的版本是4.16.0,已经没有了命令行工具,所以需要额外安装 express-generator( npm install -g express-generator )

  安装完以后,控制台输入 express -V 看能否出现版本号,若可以则安装成功;若提示“express不是内部命令”,继续往下看。

  在全局安装路径里找到 express.cmd (我的是在 D:\nodejs\node_modules\node_global\ ),将这个路径添加到系统变量 Path ,

  保存后再到控制台输入 express -V 看能否出现版本号,若可以则安装成功,若出现“error: unknown option '-V'”(如下图所示),则在控制台输入 express --version 看能否出现版本号,若可以则安装成功。

初次学习express+ejs小记

2、安装成功后,开始搭建环境:

  进入需要创建项目的目录:cd E:\nodejs\express

  创建一个带ejs模板工程目录,目录命名为 ejsDemo:express -e ejsDemo,这一步执行后,会自动创建一个ejsDemo的目录,以及工程所需的基本框架目录

  进入创建的目录:cd ejsDemo

  安装项目依赖的模块:npm install,这一步会自动安装一些需要的模块

  启动nodejs服务器:npm start

  浏览器中输入:http://127.0.0.1:3000

  上面就是 nodejs 下利用 express+ejs 进行环境搭建的基本流程。

3、更改 ejs 模板后缀.ejs为.html

  app.register('.html', require('ejs'));
  app.set('view engine', 'ejs');

  app.engine('.html', require('ejs').renderFile);
  app.set('view engine', 'html');

  app.engine('.html', require('ejs').__express);
  app.set('view engine', 'html');

  上面三种方法,第一种是 express 老写法,3.*已经不支持,后面两种3.*都支持

  注意:在路由里,可以省去 index.html 的后缀,直接写 index 即可,但是在 视图里 include 的时候,还是需要写上 .html 的后缀,否则报错

  备注:
  app.set("views",__dirname+"/work");  //设置视图目录
  var ejs = require('ejs');  //加载模块ejs
  app.engine('.html', ejs.__express); 或者 app.engine('.html', require('ejs').renderFile);  //让ejs能够识别后缀为 '.html' 的文件,app.engine 相当于 express2 中的 app.register
  app.set('view engine','html');  //在调用 render 函数时能自动为我们加上 '.html' 后缀,如果没有这句,我们就得把 res.render('users') 写成 res.render('users.html'),否则会报错