博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【二】express
阅读量:5965 次
发布时间:2019-06-19

本文共 3018 字,大约阅读时间需要 10 分钟。

一、基本使用

  1. 安装 npm install express --save
  2. 引入 var express = require('express')
  3. 创建你服务器应用程序 var app = express()
  4. 得到路径
app.get('/about', function (req, res) {	  // 在 Express 中可以直接 req.query 来获取查询字符串参数	  console.log(req.query)	  res.send('你好,我是 Express!')})复制代码

5.server.listen

app.listen(3000, function () {  console.log('app is running at port 3000.')})复制代码

二、express中间件body-parser

在express中没有内置获取表单POST请求体的API,所以需要第三方包

  1. 安装 npm install body-parser -S
  2. 配置
var express = require('express')var bodyParser = require('body-parser')var app = express()//只要加入这个配置,在req请求对象上就会多出来一个属性body,可以直接通过req.body来获取表单POST请求体的数据来了// parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false }))// parse application/jsonapp.use(bodyParser.json())app.use(function (req, res) {  res.setHeader('Content-Type', 'text/plain')  res.write('you posted:\n')  res.end(JSON.stringify(req.body, null, 2))})复制代码

三、express 静态服务 API

var app = express() // 路径带public ( //http://127.0.0.1:3000/public/css/main.css)app.use('/public/', express.static('./public/'))   // 将路径中的public替换  ( //http://127.0.0.1:3000/abc/css/main.css)app.use('/abc/', express.static('./public/'))// 将路径中的public去掉  ( //http://127.0.0.1:3000/css/main.css)app.use(express.static('./public/'))复制代码

四、Express 中 art-template的使用

npm install --save art-template npm install --save express-art-template

var express = require('express');var app = express();//第一个参数,表示,当渲染以 .art 结尾的文件的时候,使用 art-template 模板引擎express-art-template 是专门用来在 Express 中把 art-template 整合到 Express 中//可以把'art'改为html,就可以在html页面中使用模板引擎了app.engine('art', require('express-art-template'));//如果想要修改默认的 views 目录,则可以app.set('view options',render函数的默认路径);//Express 为 Response 相应对象提供了一个方法:renderapp.get('/', function (req, res) {    res.render('index.art', {        user: {            name: 'aui',            tags: ['art', 'template', 'nodejs']        }    });});复制代码

五、页面的重定向

res.send 、res.redirect 这些方法 Express 会自动结束响应

res.send('Got a DELETE request at /user') res.redirect('/')复制代码

六、app.js 入门模块的职责

  • 创建服务
  • 做一些服务相关配置
    • 模板引擎
    • body-parser 解析表单 post 请求体
    • 提供静态资源服务
  • 挂载路由
  • 监听端口启动服务

七、Express 提供了一种更好的专门用来包装路由的方式

  • router.js //路由操作
const express = require('express');// 1. 创建一个路由容器var router = express.Router()// 2. 把路由都挂载到 router 路由容器中router.get('/students',fucntion(req,res){})router.get('/students/new',fucntion(req,res){})// 3. 把 router 导出module.exports = router复制代码
  • app.js
const router = require('./router');// 把路由容器挂载到 app 服务中app.use(router)复制代码
  • students.js //数据操作
const fs = require('fs');const  dbPath = './db.json';// export.数据操作 = function(){ }复制代码

现在就可以把项目分为三部分:启动模块、路由模块、数据模块

八、在express配置中使用express-session插件

参考文档

  • 安装 npm i express-session -S
  • 配置:
//该插件会为req请求对象添加一个成员: req.session默认是一个对象app.use(session({	//配置加密字符创,它会在原有加密基础上和这个字符串拼接再加密	secret: 'ran',	resave: false,	saveUninitialized: false   //无论你是否使用session,都会默认直接给你配一把钥匙}))复制代码
  • 使用:
//添加Session数据req.session.foo = 'bar'//获取Session数据req.session.foo复制代码

默认Session数据是内存存储的,服务器一旦重启就会丢失,真正的生产环境会把Session进行持久化存储。

转载于:https://juejin.im/post/5bfb47296fb9a049c43d55a5

你可能感兴趣的文章
Dumpsys Input Diagnostics
查看>>
ASP.NET MVC 入门8、ModelState与数据验证
查看>>
linux进程调度之 FIFO 和 RR 调度策略---SYSTEMTAP
查看>>
JSTL的相关使用
查看>>
ActiveMQ, RabbitMQ和ZeroMQ 选型关注点
查看>>
王垠:完全用Linux工作
查看>>
Understanding the Router
查看>>
红米3 Flyme5.1.9.5插桩适配长期不定时更新
查看>>
MySQL 5.6 for Windows 解压缩版配置安装(转)
查看>>
组件居中显示 安卓
查看>>
delete
查看>>
sql server生成不重复的时间字符串
查看>>
DataBase 之 数据库设计六大范式
查看>>
比特币钱包安全
查看>>
Lucene就是这么简单
查看>>
2015年第6届蓝桥杯Java B组省赛试题解析
查看>>
一个有味道的函数
查看>>
zookeeper在linux环境安装
查看>>
Python_异常和模块
查看>>
【386天】跃迁之路——程序员高效学习方法论探索系列(实验阶段143-2018.02.26)...
查看>>