前言:
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 Express基于Node.js封装的,快速、开放、极简的 Node.js Web 开发框架。它通过中间件和路由让程序的组织管理变得更加容易;它提供了丰富的HTTP工具;它让动态视图的渲染变得更加容易;他还定义了一组可扩展的标准。 初始化一个Express项目,通过生成器工具express-generator快速生成了一个Express应用。
一.安装express生成器
检查express版本  $ express --version  可以查看版本
npm i -g express-generator
二.初始化一个express引用
2.1 查看电脑里面是否有Node.js,因为Express基于Node.js,所以电脑里面得安装有Node.js,下面是Node.js下载网址
- 英文网址:nodejs.org/en/
- 中文网址:nodejs.cn/
2.2 创建项目文件夹,然后在文件夹下使用命令npm init生成package.json文件,安装Express
express express-app
2.3 目录结构:
app.js应用的初始化文件,包括引入应用程序的基础依赖项、设置视图即view的引擎目录以及模板、设置静态资源路径、配置通用的中间件、引入路由和一些错误处理中间件等。 package.json应用的配置文件,文件内包含程序的基础信息、启动脚本和依赖包等。 bin/www应用的启动文件,文件内包含引用要启动的应用、设置应用监听的端口和启动http服务等。 public/**应用的静态资源文件目录,该目录下的文件资源不需要经过文件映射就可以直接访问。 routes/**应用的路由文件,这些路由文件中设置的接口最终会以指定的HTTP请求方式暴露给用户,并在用户请求之后将结果返回。 views应用的视图文件,在app.js中设置好视图引擎和模板之后,该目录即为应用视图的根目录,然后路由文件就会根据app.js中的设置加载并渲染该目录下的视图文件。
- 应用的启动 npm install 启动程序
node bin/www
启动后并没有什么反应,在浏览器上打开 http://localhost:3000/,显示下面图就表示安装成功了
2.4 通过pm2启动项目,安装:
npm install pm2 -g
启动项目: pm2 start app.js
注意:pm2是在后台启动的,还可以操作其他命令
停止:
pm2 stop app.js 或者 pm2 stop all 具体操作可以去npm官网查看,收搜pm2 www.npmjs.com/package/pm2
三.更改express项目的模板
- 该应用中是jade模板,相信大家都不习惯,可以去学习一下:也可以改成html,我是使用ejs模板的
安装ejs
npm i ejs --save
打开app.js文件,引入ejs模板
var ejs = require('ejs');
app.engine('.html',ejs.__express); //新增
app.set('view engine', 'html'); // 将jade模板改成html
最后在views新建一个html文件就可以啦!
四. 路由
路由表示应用程序端点 (URI) 的定义以及端点响应客户机请求的方式。 有关路由的简介,请参阅基本路由expressjs.com/zh-cn/start…
- Express 支持对应于 HTTP 方法的以下路由方法:get、post、put、head、delete、options、trace、copy、lock、mkcol、move、purge、propfind、proppatch、unlock、report、mkactivity、checkout、merge、m-search、notify、subscribe、unsubscribe、patch、search 和 connect。
- 一个简单的基本理由:
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send('hello world');
});
路由路径与请求方法相结合,用于定义可以在其中提出请求的端点。路由路径可以是字符串、字符串模式或正则表达式。 路由处理程序您可以提供多个回调函数,以类似于中间件的行为方式来处理请求。唯一例外是这些回调函数可能调用 next('route') 来绕过剩余的路由回调。您可以使用此机制对路由施加先决条件,在没有理由继续执行当前路由的情况下,可将控制权传递给后续路由。 路由处理程序的形式可以是一个函数、一组函数或者两者的结合,如以下示例中所示。
app.get('/hello/a', function (req, res) {
res.send('Hello from A!');
});
有一种特殊路由方法:app.all(),它并非派生自 HTTP 方法。该方法用于在所有请求方法的路径中装入中间件函数。
app.all('/secret', function (req, res, next) {
console.log('Accessing the secret section ...');
next();
});
每天学习一点,记录下自己学习的东西!!!