一、supervisor

为了方便开发,使用 supervisor 监听文件变化,并且重新调用 node 文件。

全局安装:

npm install -y supervisor

监听文件:

supervisor app.js

因为我没有使用 express-generator ,而且只写在一个文件里面,如果要监听文件夹,直接监听即可。

主要的配置参数如下:

参数解释
-w / --watch要监听的文件目录,默认为.
-i / --ignore要忽略的文件夹或文件
-p / --poll-interval监控文件变化的时间间隔(周期),默认为 node.js 内置的时间
-e / --extensions要监控的文件扩展名,默认为 `nodejs`
-x / --exec要执行的主应用程序 默认为 node
--debug开启debug模式
-q / --quiet不显示 debug 信息

二、cookie 的操作

使用 cookie 需要安装 cookie-parser,引入之后 use 即可。

cookie-parser 地址:

cookie 的使用比较特别,因为获取 cookie 的内容是在 req.cookies 中完成的,而设置和删除 cookie 是在 res.cookie() 中完成的。

const express = require('express');
const cookieParser  = require('cookie-parser');

const app = express();
app.use(cookieParser());

// 获取 cookie
app.get('/',(req,res)=>{
  res.send(req.cookies.name);
});
// 添加  cookie
app.get('/add',(req,res)=>{
  res.cookie("name","postbird",{domain:'localhost'});
  res.send(req.cookies.name);
});
// 移除 cookie
app.get('/remove',(req,res)=>{
  res.clearCookie("name");
  res.send(req.cookies);
});

app.listen(3000); 

三、session 的操作

session 需要引入 express-session,express 中使用 session,必须要使用 cookie-parser

express-session 地址:

需要注意的是,我使用的是"express-session": "^1.15.6",新版本的 express 要求必须设置 resavesaveUninitialized,否则会给一个警告。

const express = require('express');
const cookieParser = require('cookie-parser');
const session = require('express-session');

const app = express();
app.use(cookieParser());
app.use(session({
  secret:'postbird',
  resave:false,
  saveUninitialized:false
}));
// 获取session
app.get('/',(req,res)=>{
  res.send(req.session.name);
});
// 设置 session 内容
app.get('/add',(req,res)=>{
  req.session.name="postbird"
  res.send(req.session.name);
});
// destroy session
app.get('/destroy',(req,res)=>{
  req.session.destroy((err)=>{
    res.send(req.session.name);
    if(err) res.send('清除失败');
  });
});

app.listen(3000);

上面代码中,destroy 部分会报错:

1.jpg

req.session.destroy 方法会直接将 req.session 销毁,此时 req.session 成了undefined

四、session使用其他存储引擎

默认的 session 是内存存储的,但是重启服务之后,session状态就没了,如果要更改存储引擎,可以使用 express-session 的 store选项。

下面使用 session-file-store 作为存储引擎:

需要安装:

yarn add express

代码如下所示:

var session = require('express-session');
var FileStore = require('session-file-store')(session);

const options = {};

app.use(session({
    store: new FileStore(options),
    secret: 'keyboard cat'
}));

一些配置项目如下:

2.jpg