nodejs调用百度云图像识别接口

const express = require("express");

const multer = require("multer");

const config = require("config");

let port = config.get("port");

const fs = require("fs");

const AK = "你的ak"

const SK = "你的sk"

const request = require('request')



// const path = require('path');

// 创建路由对象

const bdjk = express.Router();

// const bdjkModel = require("../model/bdjk.js");




// 定义文件上传路径

const upload = multer({

    dest: "./public/fruit/oldpath/",

});



/**

 * 使用 AK,SK 生成鉴权签名(Access Token)

 * @return string 鉴权签名信息(Access Token)

 */

function getAccessToken() {



    let options = {

        'method': 'POST',

        'url': 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + AK + '&client_secret=' + SK,

    }

    return new Promise((resolve, reject) => {

        request(options, (error, response) => {

            if (error) { reject(error) } else { resolve(JSON.parse(response.body).access_token) }

        })

    })

}



// 单文件上传   upload.single('上传的表单的name属性值')

bdjk.post("/bdfileUpload", upload.single("file"), async(req, res) => {

    // 获取post请求参数

    // console.log(req.file); // 上传的文件信息

    var bs = req.body.base64

        // console.log(bs.substring(23));

    var objbs = {};

    objbs.image = bs.substring(23)

        // console.log(objbs);

        // console.log("++++++++++++++++++++++++++++++++++++++++++++++++");

        // console.log(req);




    let filename = req.file.filename;

    let newfilename = filename + req.file.originalname;

    var url = "http://localhost:" + port + "/public/fruit/oldpath/" + newfilename;

    console.log(url);

    fs.rename("./public/fruit/oldpath/" + filename,

            "./public/fruit/oldpath/" + newfilename,

            (err) => {

                if (err) {

                    console.log(err);

                } else {

                    console.log(url);

                }

            })

        // var result = await bdjkModel.sd(objbs)

    var options = {

        'method': 'POST',

        'url': 'https://aip.baidubce.com/rest/2.0/image-classify/v1/classify/ingredient?access_token=' +

            await getAccessToken(),

        'headers': {

            'Content-Type': 'application/x-www-form-urlencoded',

            'Accept': 'application/json'

        },

        // image 可以通过 getFileContentAsBase64("C:\fakepath\chenzi.jpg") 方法获取,

        form: objbs

    };




    function callback(error, response) {

        if (error) {

            res.send({

                state: 404,

                error: error,

                message: '识别失败'

            })

        } else {

            resultobj = JSON.parse(response.body)

                // console.log(resultobj);

            console.log(response.body)

            res.send({

                state: 200,

                data: resultobj,

                imgurl: url,

                message: '识别成功'

            })

        };

    }

    request(options, callback);



});








// 导出路由

module.exports = bdjk;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值