業務線--node中間層作一個透傳的項目

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安全

相關文章
相關標籤/搜索