ganjiang-middleware

3.8.9 • Public • Published

GeoEngineDS-API Middleware

  • Usage Example
import GeoEngineDS from 'GeoEngineDS'
import bodyParser from 'body-parser'
import express from 'express'
import path from 'path'
 
const app = express()
const logFolder = path.join(__dirname, '../logs')
const config = {
  host: 'GeoEngineDS host', // gas support
  token: 'GeoEngineDS token', // gas support
  DEBUG: false,// 打开调试模式
  logFolder: logFolder, //日志目录
  logLevels: ['info', 'error'], // 日志级别
  dsMap: {
    test: 12,
    traffic: 13
  }
  apiList : {
    test: [
      {
        ds: 'test', // GeoEngineDS id gas support
        path: '/api/getTest1', // router path
        sql : async (req) => "select * from tableName where xx='123'", //函数,接收req和context作为入参,返回sql
        type: 'origin', // 输出格式: origin原样输出(默认) 或者'geojson' 输出geojson格式
        token: 'abc'
      }
    ],
    traffic: [
      {
        ds: 'traffic',
        path: '/api/getTest2',
        sql: async (req) => {
          const sql = "SELECT * FROM ?? WHERE ?? = ?"
          const { useId } = req.query
          return context.format(sql, ['users', 'id', userId])
        }, // 如果需要从req读取query或params组装sql,采用context.format预防sql注入
        type: 'geojson', // 输出geojson格式
        token: 'bcd'
      },
      {
        ds: 'traffic',
        path: '/api/getTest3',
        sql: async (req) => {
          const sql = "SELECT * FROM ?? WHERE ?? = ?"
          const { useId } = req.query
          return context.format(sql, ['users', 'id', userId])
        }, 
        dataFormater: async data => data, // origin or geojson 不能满足需求,自定义数据格式,输入的data是type格式的数据
        beforeSend: async (req, res) => { console.log('before send request') }, // hook function before send the result
        afterSend: async (req, res, data) => { console.log('after send request') },  // hook function after send
        onError: async (req, res, error) => { console.error('got error=', error)}, // when catch error        
        type: 'geojson',
        token: 'aaa'
      }
    ]
  }
}
 
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(GeoEngineDS(app, config))
const server = app.listen(3000, 'localhost', function () {
  console.log(server.address());
  const host = server.address().address
  const port = server.address().port
  console.log("应用实例,访问地址为 http://%s:%s", host, port)
 
})

Readme

Keywords

Package Sidebar

Install

npm i ganjiang-middleware

Weekly Downloads

20

Version

3.8.9

License

MIT

Unpacked Size

95.3 kB

Total Files

23

Last publish

Collaborators

  • taozhi.tz
  • taozhi8833998