1,node中间层总结vue
1,ejs引入vue的js,路由层(直接透传,自定义行的),比较浅层的一层node
中间件的引入ios
const
path =
require(
'path')
const
Koa =
require(
'koa')
const
views =
require(
'koa-views')
const
parser =
require(
'koa-bodyparser')
const
koaStatic =
require(
'koa-static')
const
koaMount =
require(
'koa-mount')
const
app =
new
Koa()
const {
port,
routerRoot } =
require(
'./config/base')
const
middlewares =
require(
'./middlewares/index')
const
register =
require(
'./common/register')
// 公共数据
app.
use(
async (
ctx,
next)
=> {
// ejs模版中使用该变量动态加载对应模版
ctx.
state = {
EJS_ENV: [
'a',
'b',
'c'].
indexOf(
process.
env.
JZ_ENV) !== -
1 ?
'test' :
process.
env.
JZ_ENV }
// 继续向下匹配路由
await
next()
})
// 入口页-注意:必须放在路由注册前面
app.
use(
views(
path.
join(
__dirname,
'./app'), {
extension:
'ejs'
}))
// post参数解析
app.
use(
parser())
// 自定义拦截器
middlewares(
app)
// 模块注册
app.
use(
register.
launch())
// 静态资源支持
app.
use(
koaMount(
`
${
routerRoot
}
/static`,
koaStatic(
path.
join(
__dirname,
'../static'))))
app.
listen(
port)
优势,一、内网和内网访问更安全,速度更快,json
二、微信小程序没有办法设置cookie,中间层解决这个问题,axios
三、减小没必要要的发布,审核,中间层修改域名 小程序
访问的接口错误的拦截微信小程序
axios.
interceptors.
response.
use(
response
=> {
let
reqInfo =
response.
config
let
isJsonResponse = !((
reqInfo.
responseType &&
reqInfo.
responseType !==
'json'))
let
methods =
reqInfo.
method
let
url =
reqInfo.
url
let
params =
reqInfo.
params ||
''
let
data =
reqInfo.
data ||
''
console.
log(
'interceptors================================')
if (
isJsonResponse &&
response.
data.
code !==
0) {
// 与rd约定,接口成功返回code===0,其他为失败
console.
log(
'response===========================' +
response)
logger.
warn(
`
${
methods
}
rd:
${
url
}
params:
${
JSON.
stringify(
params)
}
data:
${
JSON.
stringify(
data)
}
response:
${
JSON.
stringify(
response.
data)
}
`)
logger.
warn(
`header:
${
JSON.
stringify(
reqInfo.
headers)
}
`)
}
else {
(
logger.
info(
`Success
${
methods
}
rd:
${
url
}
params:
${
JSON.
stringify(
params)
}
data:
${
JSON.
stringify(
data)
}
`)
)
}
return
response
},
error
=> {
let
reqInfo =
error.
config
let
params =
reqInfo.
params ||
''
let
data =
reqInfo.
data ||
''
logger.
error(
`
${
reqInfo.
method
}
${
reqInfo.
url
}
params:
${
JSON.
stringify(
params)
}
data:
${
JSON.
stringify(
data)
}
`)
return
Promise.
reject(
error)
})
}
注册路由,采用router.all安全