欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

npm中常用的package

程序员文章站 2022-03-03 18:53:13
...

morgan

用于记录日志的中间件,可以根据给定的参数和格式记录日志;
配合文件写入功能,可以将日志按照每天一个文件的格式写入到文件中;
日志记录的繁简也可设定或自定义

实例

import express from 'express'
import logger from 'morgan'

app.use(logger('dev', {
    skip: () => app.get('env') === 'test'
}))
// 代码说明:
// 将日志按照dev级别的输出,test环境中不输出

日志按天记录

var express = require('express')
var fs = require('fs')
var morgan = require('morgan')
var path = require('path')
var rfs = require('rotating-file-stream')
 
var app = express()
var logDirectory = path.join(__dirname, 'log')
 
// ensure log directory exists 
fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory)
 
// create a rotating write stream 
var accessLogStream = rfs('access.log', {
  interval: '1d', // rotate daily 
  path: logDirectory
})
 
// setup the logger 
app.use(morgan('combined', {stream: accessLogStream}))
 
app.get('/', function (req, res) {
  res.send('hello, world!')
})

cookie-parser

对http传入的cookie进行解析后赋值给req.cookies,使得中间件可用;
如果传入了一个string类的参数那么说明你需要对用这个参数进行了加密的值进行解密(注意!这个方法不是加密是解密!)

options 中没有设置过期时间的话,默认关闭浏览器即过期清除

var express      = require('express')
var cookieParser = require('cookie-parser')
 
var app = express()
app.use(cookieParser())
 
app.get('/', function(req, res) {
  console.log('Cookies: ', req.cookies)
})
 
app.listen(8080)
 
// curl command that sends an HTTP request with two cookies 
// curl http://127.0.0.1:8080 --cookie "Cho=Kim;Greet=Hello" 

body-parser

对post请求的请求体进行解析
以下两行代码已经覆盖了大部分的使用场景。

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

一篇不错的入门教程

connect-history-api-fallback

单页应用中,导航都是用 HTML5 History API来做的。这样在按F5或ctrl+F5及其他强刷时,会跳转回首页,体验非常不好。
这个package就是解决这个问题的最佳方案。

代码实例:

import history from 'connect-history-api-fallback'
const app = express()
app.use(history())

jwt-simple

JWT(JSON Web Token)
编码和解码
默认的算法是 HS256
支持: HS256, HS384, HS512 and RS256.

var jwt = require('jwt-simple');
var payload = { foo: 'bar' };
var secret = 'xxx';
 
// HS256 secrets are typically 128-bit random strings, for example hex-encoded: 
// var secret = Buffer.from('fe1a1915a379f3be5394b64d14794932', 'hex) 
 
// encode 
var token = jwt.encode(payload, secret);
 
// decode 
var decoded = jwt.decode(token, secret);
console.log(decoded); //=> { foo: 'bar' }