'use strict'; const request = require('superagent') class paasRequest { constructor(root) { this.root = root; } #buildUrl = (url) => { return `${this.root}/${url}`; } #resultHandler = (resolve, reject) => { return (err, res) => { if (err) { reject(err); } else { resolve(res.body); } }; } get = (url, { query, header = {} }) => { return new Promise((resolve, reject) => { request.get(this.#buildUrl(url)).set(header).query(query).end(this.#resultHandler(resolve, reject)); }) } post = (url, data, query) => { return new Promise((resolve, reject) => { request.post(this.#buildUrl(url, this.root)).set(header).query(query).send(data).end(this.#resultHandler(resolve, reject)); }) } put = (url, data) => { return new Promise((resolve, reject) => { request.put(this.#buildUrl(url)).set(setHeader()).send(data).end(this.#resultHandler(resolve, reject)); }) } delete = (url) => { return new Promise((resolve, reject) => { request.delete(this.#buildUrl(url)).set(setHeader()).end(this.#resultHandler(resolve, reject)); }) } } function factory (app, opts) { if (opts.pssaRequest) { try { for (let r of opts.pssaRequest) { if (r.name && r.root) { app.fs[r.name] = new paasRequest(r.root) } else { throw 'opts.pssaRequest 参数错误!' } } } catch (error) { console.error(error) process.exit(-1); } } } module.exports = factory;