赞
踩
前言:
本例中必须安装的依赖包有:express
、cookie-parser
(可以没有)
import express from "express"; import cookieParser from 'cookie-parser' const ssoRouter = express.Router() ssoRouter.use(cookieParser()) ssoRouter.all('/*', function(req:any, res:any, next:any) { let validate_token = req.cookies?.validate_token if(validate_token) { next() } else { // do something 可以是重定向等 res.send() } }) export default ssoRouter
注册一个全局的.all('/*')
接口,进行全局拦截。这里面可以写任意你需要进行权限校验、参数校验等的方法。校验正确就会继续执行,校验出现错误就会按照你所设定的方法执行。
import express from 'express'
const app = express()
import interceptRouter from './router/intercept'
app.use(interceptRouter )
这里主要指在nodejs后台项目中设置环境变量。设置方法为:在package.json
文件中,在script
标签中的启动命令后面添加et NODE_ENV=development
,如:
{
"name": "name",
"version": "1.0.0",
"description": "",
"scripts": {
"dev:live": "set NODE_ENV=development && nodemon ./src/app.ts"
},
}
运行npm run dev:live
命令,环境变量就可以生效。你可以可以设置将NODE_ENV
改为其它的值或其它的变量名做尝试。
在nodejs后台项目中,获取环境变量的方法可以通过process.env.NODE_ENV
获取。如:
const env = process.env.NODE_ENV as string
const envUrl:Record<string,string> = {
'production': 'https://xxx.com/#/index',
'development': 'https://xxx-dev.com/#/index',
'test': 'https://xxx-sit.com/#/index'
}
let redirectUrl = encodeURIComponent(envUrl[env.trim()])
如上,通过process.env.NODE_ENV
获取了环境变量,并赋值给env变量;envUrl
中定义了三种环境下的系统访问地址,包括production、development和test;通过encodeURIComponent(envUrl[env.trim()])
对系统地址编码。注意:
env
一定要调用.trim()
方法去掉前后空格,我就是因为没有去空格一直从对象种获取不到正确的值,调试了好久…encodeURIComponent
编码,否则浏览器直接访问会丢掉后面的路径。我也在这里碰到了巨坑~~Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。