Express Cookie Session 开源项目教程
1. 项目的目录结构及介绍
cookie-session/
├── LICENSE
├── README.md
├── index.js
├── package.json
└── test/
├── cookies.js
├── keys.js
├── session.js
└── test.js
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文档。
- index.js: 项目的主文件,包含了主要的逻辑和功能。
- package.json: 项目的依赖管理文件,包含了项目的元数据和依赖包。
- test/: 测试文件夹,包含了项目的测试用例。
- cookies.js: 处理cookie的测试用例。
- keys.js: 处理密钥的测试用例。
- session.js: 处理session的测试用例。
- test.js: 主测试文件,整合了其他测试用例。
2. 项目的启动文件介绍
项目的启动文件是 index.js
,它包含了主要的逻辑和功能。以下是 index.js
的主要内容:
var cookieSession = require('cookie-session')
var express = require('express')
var app = express()
app.use(cookieSession({
name: 'session',
keys: [/* secret keys */],
// Cookie Options
maxAge: 24 * 60 * 60 * 1000 // 24 hours
}))
app.use(function (req, res, next) {
// Update views
req.session.views = (req.session.views || 0) + 1
// Write response
res.end(req.session.views + ' views')
})
app.listen(3000)
- 引入依赖: 引入了
cookie-session
和express
模块。 - 创建 Express 应用: 创建了一个 Express 应用实例
app
。 - 使用 cookieSession 中间件: 配置了
cookie-session
中间件,设置了 session 的名称、密钥和 cookie 的有效期。 - 处理请求: 定义了一个中间件函数,用于更新和响应 session 的 views 计数。
- 启动服务器: 监听端口 3000。
3. 项目的配置文件介绍
项目的配置文件是 package.json
,它包含了项目的元数据和依赖包。以下是 package.json
的主要内容:
{
"name": "cookie-session",
"version": "2.0.0",
"description": "cookie session middleware",
"main": "index.js",
"scripts": {
"test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/"
},
"repository": {
"type": "git",
"url": "https://github.com/expressjs/cookie-session.git"
},
"keywords": [
"cookie",
"session"
],
"author": "Douglas Christopher Wilson <doug@somethingdoug.com>",
"license": "MIT",
"dependencies": {
"cookies": "0.7.1",
"debug": "2.6.9",
"depd": "1.1.2",
"on-headers": "1.0.1"
},
"devDependencies": {
"eslint": "4.19.1",
"eslint-config-standard": "11.0.0",
"eslint-plugin-import": "2.12.0",
"eslint-plugin-node": "6.0.1",
"eslint-plugin-promise": "3.8.0",
"eslint-plugin-standard": "3.1.0",
"mocha": "5.2.0",
"supertest": "3.1.0"
},
"engines": {
"node": ">= 0.8.0"
}
}
- name: 项目的名称。
- version: 项目的版本号。
- description: 项目的描述。
- main: 项目的主文件