6

express快速入门

express介绍

express是基于Node.js平台,快速、开放、极简的 web 开发框架。
首先要个大家提供一些技术网站
http://expressjs.com/
http://www.expressjs.com.cn/
https://github.com/pugjs/pug
https://pug.bootcss.com/api/g...

安装express

新建一个文件夹
mkdir myapp
cd myapp
通过 npm init 命令为你的应用创建一个 package.json 文件
npm init
此命令将要求你输入几个参数,例如此应用的名称和版本。
entry point: (index.js)
输入 app.js 或者你所希望的名称(建议用app.js),这是当前应用的入口文件。
安装Express并将其保存到依赖列表中
npm install express --save
安装成功

express打印Hello Wrold

效果如下

图片描述

要想打印HelloWrold首先要引入这个模块,然后实力化,接着定义方法,最后需要启动任务
//引入模块
const express = require("express");
//实例化
var app = express();
//定义方法
app.get('/', function (req, res) {
    res.send('Hello World!');
});

//启动app
var server = app.listen(3000,function(){
    console.log("启动成功!访问http://localhost:3000");
})

express脚手架安装

效果图

图片描述

按一个全局的express脚手架
npm install express-generator -g
在当前工作目录下创建一个命名为 myapp 的应用
express myapp
安装所有依赖包
cd myapp
npm install
启动这个应用
启动这个应用(MacOS 或 Linux 平台):
DEBUG=myapp npm start
Windows 平台使用如下命令:
set DEBUG=myapp & npm start
在浏览器中打开 http://localhost:3000/ 网址就可以看到这个应用了
接下来说一下这个应用的过程,仔细看图就能懂
效果图

图片描述

他是在路由里面返回一个index文件,这个index文件是views里面的文件
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express1' });
});
下面是index.ejs文件,这个是views文件。我安装的时候定义了一下要用ejs的,默认是jade文件
<head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>
  </body>

express路由

每一个路由都可以有一个或者多个处理器函数,当匹配到路由时,这个/些函数将被执行。
路由的定义由如下结构组成:app.METHOD(PATH, HANDLER)。其中,app 是一个 express 实例;METHOD 是某个 HTTP 请求方式中的一个;PATH 是服务器端的路径;HANDLER 是当路由匹配到时需要执行的函数。
代码展示了几个路由实例
// 对网站首页的访问返回 "Hello World!" 字样
app.get('/', function (req, res) {
  res.send('Hello World!');
});

// 网站首页接受 POST 请求
app.post('/', function (req, res) {
  res.send('Got a POST request');
});

// /user 节点接受 PUT 请求
app.put('/user', function (req, res) {
  res.send('Got a PUT request at /user');
});

// /user 节点接受 DELETE 请求
app.delete('/user', function (req, res) {
  res.send('Got a DELETE request at /user');
});
我自己定义了一个新的路由(看懂图就会做了)
效果

图片描述

定义一个order.js的路由文件
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('order', { msg: '订单首页' });
});
//导出
module.exports = router;
需要在app.js中加入路由调用
var order = require('./routes/order');
app.use('/order', order);
需要新建一个order.els视图页面
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <title><%= msg %></title>
</head>
<body>
        <h1><%= msg %></h1>
        <p>这是我自己做的<%= msg %></p>
</body>
</html>

express静态文件设置

静态文件就是图片,css,js等等这些写死的文件
express中的静态文件是在public中,是在app.js中定义的
app.use(express.static(path.join(__dirname, 'public')));

中间件

什么是中间件
中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。
中间件的功能包括
执行任何代码。
修改请求和响应对象。
终结请求-响应循环。
调用堆栈中的下一个中间件。
Express 应用可使用如下几种中间件
应用级中间件
路由级中间件
错误处理中间件
内置中间件
第三方中间件
说一下这几种中间件的用法

应用级中间件

应用级中间件绑定到 app 对象 使用 app.use() 和 app.METHOD()
var app = express();

// 没有挂载路径的中间件,应用的每个请求都会执行该中间件
app.use(function (req, res, next) {
  console.log('Time:', Date.now());
  next();
});

路由中间件

路由级中间件和应用级中间件一样,只是它绑定的对象为 express.Router()路由上
var router = express.Router();

// 没有挂载路径的中间件,通过该路由的每个请求都会执行该中间件
router.use(function (req, res, next) {
  console.log('Time:', Date.now());
  next();
});
切记使用中间件根据需要,是否写next();如下需要执行下面的代码就必须写,否者就挂起不执行下面代码,这个next()是起挂起作用的
不一一介绍,这两种是常用的,其他的可以去参考手册

express进程管理器

用进程管理以前的效果

图片描述

用进程管理后的效果

图片描述

为什么需要用express进程管理器
因为每改一次代码都要重启服务,那么用进程管理器就不许,改完代码直接刷新浏览器看向就ok
我选用是一个叫PM2的进程管理器

安装

npm install pm2 -g
启动
pm2 start ./bin/www --watch
列出所有运行的进程
pm2 list
停止应用程式
pm2 stop 0
重新启动应用程式
pm2 restart 0
要查看有关应用的详细信息
pm2 show 0
要从pm2注册表中删除应用程序
pm2 delete 0
常用的也就是启动和删除应用程序
写到这里也要说再见了,一个简单express的应用就完成了,你学会了吗???
喜欢的点赞加收藏啊

Besmall
334 声望37 粉丝