node+express搭建过程以及安装ejs模板引擎解决方案
一、Node.js简介
1.Node.js是什么?
Node.js 可以作为服务器向用户提供服务,与 PHP、Python、Ruby on Rails 相比,它跳过了 Apache、Nginx 等 HTTP 服务器,直接面向前端开发。Node.js 是一个让 JavaScript 运行在浏览器之外的平台。PS: Node.js 不运行在浏览器中,所以也就不存 在 JavaScript 的浏览器兼容性问题。
2.Node.js可以做什么?
Node.js 能做的远不止开发一个网 站那么简单,使用 Node.js,你可以轻松地开发: 具有复杂逻辑的网站;基于社交网络的大规模 Web 应用;Web Socket 服务器;TCP/UDP 套接字应用程序;命令行工具;交互式终端程序;带有图形用户界面的本地应用程序;单元测试工具;客户端 JavaScript 编译器。
Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。
二、安装Node.js、express
1.安装node
node下载地址链接: https://nodejs.org/zh-cn/download/
安装完成之后,检查node的版本:

2.安装express:
安装命令:npm install -g express

查看安装的版本: express --version

三、建立工程
Express 在初始化一个项目的时候需要指定模板引擎,默认支持Jade和ejs,为了降低学 习难度我们推荐使用 ejs; ——摘自《Node.js权威指南》
1. 创建工程:当按照书上的命令行去执行时: express -t ejs projectName

2. 安装install: 然后执行 cd projectName ,进入到你的项目中,执行 npm install ,进行安装,最后通过 npm start 启动项目;

虽然项目起来了,但是查看项目的目录文件,却发现跟自己想象的不一样:明明是要用ejs模板的,结果执行命令后,发现是 jade模板;

然后我自作聪明的重新安装一下ejs模板,npm install ejs ,然后自己又把文件中 .jade 的文件,全部改成了以后缀为 .ejs 的,(多么的机智)
然后我在 layout.ejs 中,加上自己的模板内容, 然后重新启动项目,发现页面上却不能显示layout.ejs 的任何内容;

后来才得知: 在express 3.0之后的版本,执行 express -t ejs projectName ,默认使用的都是 jade模板;
3.使用ejs模板:
(1)如果要使用ejs 模板,需执行新的命令: express -e project2
r然后cd project2, npm install===> npm start:
打开项目目录查看:发现views文件夹下,没有了layout.ejs 文件:express3以上的版本把layout默认给取消了

(2) 安装了ejs后,如何使用ejs的layout模板
安装express-partials ,运行npm install express-partials 或者在 package.json 里面的 dependencies 添加 "express-partials": "*"。然后在项目目录下运行 npm install 。
然后在app.js 里面引用 express-partials,引用方法:
1.添加引用 var partials = require('express-partials');
2.在 app.set('view engine', 'ejs'); 下面添加 app.use(partials());
在需要引用模板的地方调用 layout:'模版名称' 示例:
app.get('/', function (req, res) {
res.render('index', {
title: '首页',
layout: 'template'
});
node+express搭建过程以及安装ejs模板引擎解决方案的更多相关文章
- Express框架中如何引用ejs模板引擎
1.如何在项目中安装ejs模板引擎 在NodeJS指南中利用利用以下命令建立网站的基本结构: express -t ejs microblog 运行这个命令后继续运行 cd microblog &am ...
- express搭建web服务器、路由、get、post请求、multer上传文件、EJS模板引擎的使用
express官网 postman工具下载地址 multer的npm文档地址 express模板引擎怎么使用 地址:http://www.expressjs.com.cn/guide/using- ...
- 前端笔记之NodeJS(三)Express&ejs模板引擎&请求识别
一.Express框架 1.1基本使用 创建http服务器特别麻烦,express框架解决了这个的问题. Express在node界的地位,就相当于jQuery在DOM界的地位.jQuery的核心就是 ...
- node+express搭建个人网站(2)
node+express搭建个人网站(1)这一节中成功启动了一个网站但还很简陋,仅仅打印了一个helloworld的网页 作为个人网站,我们当然想输出自己设计好的网页, 我们借助 Express 应用 ...
- 在express站点中使用ejs模板引擎
在express站点中使用ejs模板引擎 文/玄魂 目录 在express站点中使用ejs模板引擎 前言 1.1 安装 1.2修改app.js 1.3创建测试页面 前言 使用 vs创建 ...
- node+ejs模板引擎的应用
前言: 最近在开发一个关于后台管理系统的基础开发平台,解释一下就是不管什么管理系统都有一些相同的功能,但是又有一些细节不一样,这个基础平台就是实现对于基础功能可以进行快速开发,主要有自定义的生成功能代 ...
- nodejs-5.1 ejs模板引擎
ejs官方文档:https://ejs.bootcss.com/ 1.什么是 EJS? "E" 代表 "effective",即[高效]. EJS 是一套简单的 ...
- 使用ejs模板引擎
let express = require('express'); let fs = require('fs'); let ejs = require('ejs'); let app = expres ...
- koa2--04.ejs模板引擎
首先在项目文件下使用cmd,输入:npm install --save koa-views ejs,将koa-views中间件和ejs模板引擎安装到文件中,并自动写入依赖 接在在index.js文件中 ...
随机推荐
- angular 路由传参
第一种:<a [routerLink]="['/product']" [queryParams]="{id: 1}">商品详情</a> ...
- Oracle下载及安装
Oracle 下载及安装 一.官方下地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/in ...
- 数值限制------c++程序设计原理与实践(进阶篇)
每种c++的实现都在<limits>.<climits>.<limits.h>和<float.h>中指明了内置类型的属性,因此程序员可以利用这些属性来检 ...
- Kafka,Mq,Redis作为消息队列有何差异?
Kafka作为新一代的消息系统,mq是比较成熟消息系统,而redis也可以发布订阅,那么这三者有何异同? RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,X ...
- 《 V I M 教 程 》 —— 版本 1.7
=============================================================================== = 欢 迎 阅 读 < V I M ...
- java集合类学习笔记之ArrayList
1.简述 ArrayList底层的实现是使用了数组保存所有的数据,所有的操作本质上是对数组的操作,每一个ArrayList实例都有一个默认的容量(数组的大小,默认是10),随着 对ArrayList不 ...
- Unity---动画系统学习(5)---使用MatchTarget来匹配动画
1. 介绍 做好了走.跑.转弯后,我们就需要来点更加高级的动画了. 我们使用自带动画学习笔记2中的FQVault动画,来控制人物FQ. 在动画学习笔记4的基础上添加Vault动画. 添加一个参数Vau ...
- Python3之random模块
一.简介 ramdom模块提供了一个随机数的函数:random() 它可以返回一个随机生成的实数,范围在[0,1)范围内.需要注意的是random()是不能直接访问的,需要导入模块random才可以使 ...
- C#调用存储过程的ADO.Net
using System.Data.SqlClient; //如果存储过程没有输入和输出参数,而且不返回查询结果 SqlCommand cmd = new SqlCommand("存储过程名 ...
- update 多表链接
update Aset A.shl = A.shl - B.shl from retmxls A,daysphz Bwhere A.spid = B.spid and A.fdbs = B.fdbs ...