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

本文共 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

你可能感兴趣的文章
01hibernate_first
查看>>
对LigerUI控件库进行扩展,自定义extend和override,并扩展事件前与事件后
查看>>
Tengine——安装起来真费劲
查看>>
关于Oracle过程,函数的经典例子及解析
查看>>
Android-PullToRefresh(一)
查看>>
JavaScript+XML+VBA导出报表初步构想
查看>>
UVA1452|LA4727-----Jump------经典的约瑟夫公式的变形(DP)
查看>>
Android SDK安装教程
查看>>
sourceinsight 相对路径设置
查看>>
mysql describe
查看>>
程序员的自我修养 学习笔记(5)
查看>>
DNS安全浅议、域名A记录(ANAME),MX记录,CNAME记录 专题
查看>>
数据字典生成工具之旅(9):多线程使用及介绍
查看>>
Java编程思想学习笔记——注解
查看>>
使用HTML5新特性Mutation Observer实现编辑器的撤销和撤销回退操作
查看>>
Java可变参数传递中可以接收多个对象
查看>>
Python中的正则表达式(re)
查看>>
2016 新学++ , 回顾过去展望未来
查看>>
让你在DOS中任意切换目录
查看>>
较完整的轮播图特效
查看>>