Express讲解

一、前言

基于 Node.js 平台,快速、开放、极简的 Web 开发框架 。

1. 框架的作用

框架可以帮助省略掉一些基本的相同底层代码的反复书写,只需调用框架的方法就可以实现你想要的功能。

2. Node 相关的框架

  1. express
  2. koa
  3. egg
  4. thinkjs
  5. adonisjs
  6. nestjs

二、安装

$ npm install express

三、Hello World

const express = require('express');
const app = express();

app.get('/', function(req, res) {
   
  res.send('hello world');
});

app.listen(3000, () => {
   
  console.log('服务启动成功! http://localhost:3000');
});

四、路由

路由是指确定应用程序如何响应客户端(浏览器)对特定端点的请求,该特定端点是URL(或路径)和特定的HTTP请求方式(GET、POST等)。
每个路由可以具有一个或多个处理程序函数,这些函数在路由匹配时执行。

1. 路由的基本语法

app.METHOD(PATH, [...HANDLER])
  1. app 是 express 的实例。
  2. METHOD 是小写的 HTTP 请求方式(GET、POST、PUT、PATCH、DELETE等)。
  3. PATH 是请求路径。(以 / 开头)
  4. HANDLER 是当路由匹配时执行的函数。
// 1. 处理 GET / 请求时
app.get('/', (req, res) => {
   
  res.send('GET / 响应')
})

// 2. 处理 POST / 请求时
app.post('/', (req, res) => {
   
  res.send('POST / 响应')
})

// 3. 处理 GET /users 请求时
app.get('/users', (req, res) => {
   
  res.send('GET /users 响应')
})

// 4. 处理 DELETE /users 请求时
app.delete('/users', (req, res) => {
   
  res.send('DELETE /users 响应')
})

2. 请求参数的获取

  1. query 参数(?号传参)
Route Path  : /hello
Request URL : http://localhost:3000/hello?name=zhangsan&age=18
req.query   : {
    name: 'zhangsan', age: '18' }
  1. body 参数(请求体传参)
    注意:req.body 需要设置中间件
const express = require('express')
const bodyParser = require('body-parser')
const app = express()

/**
 * 处理 请求体参数的 解析
 * Express 4.16.0 之前使用 bodyParser 第三方模块
 */
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
    extended: true }))

/**
 * 处理 请求体参数的 解析。
 * Express 4.16.0 起 提供了内置的 express.json() 和 express.urlencoded()
 * 当然他们内部还是基于 bodyParser 的
 */
//
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,针对你的问题:Express 框架中的 session,我可以给你讲解一下。 在 Web 应用中,session 是一种在服务器端存储数据的机制。它允许我们在不同的页面或请求之间共享数据,以实现用户身份验证、购物车、表单填写等功能。 在 Express 框架中,我们可以使用第三方中间件 `express-session` 来实现 session 的功能。具体的实现步骤如下: 1. 安装 `express-session` 中间件: ``` npm install express-session ``` 2. 引入中间件并设置: ```javascript const session = require('express-session'); app.use(session({ secret: 'your secret key', resave: false, saveUninitialized: true })); ``` 这里的 `secret` 参数是用于指定一个秘密字符串,用于加密 session 数据。`resave` 和 `saveUninitialized` 参数分别表示每次请求结束后是否强制保存 session 数据和在没有数据的情况下是否保存一个空的 session 对象。 3. 在路由中使用 session: ```javascript app.get('/login', (req, res) => { req.session.username = 'user1'; res.send('Login success.'); }); app.get('/profile', (req, res) => { const username = req.session.username; if (username) { res.send(`Welcome, ${username}.`); } else { res.send('Please login first.'); } }); ``` 在上面的示例中,我们在 `/login` 路由中设置了 session 的 `username` 属性,然后在 `/profile` 路由中读取了该属性,并根据其值显示不同的信息。 以上就是使用 `express-session` 实现 session 功能的基本步骤。希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值