业务线--node中间层做一个透传的项目

1,node中间层总结

1,ejs引入vue的js,路由层(直接透传,自定义行的),比较浅层的一层

 中间件的引入

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)

优点,1、内网和内网访问更安全,速度更快,

           2、微信小程序没有办法设置cookie,中间层解决这个问题,

           3、减少不必要的发布,审核,中间层修改域名 ​​​​

访问的接口错误的拦截

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

 

转载于:https://www.cnblogs.com/yayaxuping/p/10167819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值