12月28, 2017

thinkJs-封裝

node.js 用commonjs es6用AMD reaquire.js 服务器端的node 不能用import 只是相近es6语法 不等于

自封装

控制台打印调用方法,返回的值

const circle = require('./tool/text');  // 封装路径 测试封装

module.exports = class extends Base {

  async indexAction() {
    console.log('圆面积:' + circle.area(4));
    console.log('圆周长:' + circle.circumference(14));
  }
};

封装的js 涉及异步需要用 new Promise

var x = 5;
var area = function (radius) {
    return Math.PI * radius * radius;
}
var circumference = function (radius) {
    return 2 * Math.PI * radius;
};
module.exports.x = x;
module.exports.area = area;
module.exports.circumference = circumference;

例子:识别身份证的封装,这里不能再用 think对象

idcard ai识别接口

const aiConfig = require('../../config/config.js');
const fs = require('fs');

let recognizeIdCard = function (image,idCardSide,options) {
    return new Promise(function(resolve, reject) {
        let AipOcrClient = require("baidu-aip-sdk").ocr;

        // 设置APPID/AK/SK
        let APP_ID = aiConfig.ai.app_id;
        let API_KEY = aiConfig.ai.api_key;
        let SECRET_KEY = aiConfig.ai.secret_key;

        // 新建一个对象,建议只保存一个对象调用服务接口
        let client = new AipOcrClient(APP_ID, API_KEY, SECRET_KEY);

        // 带参数调用身份证识别
        client.idcard(image, idCardSide, options).then(function(result) {
            // console.log(JSON.stringify(result));
            resolve(result)
        }).catch(function(err) {  // 如果发生网络错误
            // console.log(err);
            reject(err);    // throw respErr;
        });

    });
}

module.exports.recognizeIdCard = recognizeIdCard;

身份证调用接口

    async recognizeAction(){
        let file = this.ctx.file('idImage')  // 获取file的name

        // 读取信息
        let image = fs.readFileSync(file.path).toString("base64");
        let idCardSide = "front";  // front - 身份证正面 back - 身份证背面
        let options = {};    // 如果有可选参数
        options["detect_direction"] = "true";
        options["detect_risk"] = "false";
        let data = await IdCard.recognizeIdCard(image, idCardSide, options);

        if(think.isEmpty(data)){
            this.body = {
                code : -1
            }
        }else {
            this.body = {
                code : 0,
                data:{
                    imageUrl:image,
                    idCardInfo:data
                }
            }
        }
    }

本文链接:http://www.hijs.cc/post/thinkjs_tool.html

-- EOF --

Comments