zoukankan      html  css  js  c++  java
  • 【AI】图像识别-物体检测-百度AI-EasyDL-NodeJS

    var https = require('https')
    var express = require('express');
    var app = express();
    var bodyParser = require("body-parser");
    var request = require('request')
    var fs = require('fs'); // 引入fs模块
    
    //访问端口
    var port = 9999
    
    //接受post数据
    app.use(bodyParser.json({
        "limit": "100mb"
    }));
    app.use(bodyParser.urlencoded({
        limit: '50mb',
        extended: true
    }));
    
    //设置跨域访问
    app.all('*', function (req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "X-Requested-With");
        res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
        res.header("X-Powered-By", ' 3.2.1')
        res.header("Content-Type", "application/json;charset=utf-8");
        next();
    });
    var qs = require('querystring');
    
    const param = qs.stringify({
        'grant_type': 'client_credentials',
        'client_id': 'XXXXX',
        'client_secret': 'XXXXXX'
    });
    
    
    function log(data)
    {
        fs.writeFile('imgdata.txt', data, {
            'flag': 'a'
        }, function (err) {
            if (err) {
                throw err;
            }
    
            console.log('Hello.');
    
        });
    }
    
    app.post('/XXXXDetectV1', function (req, res) {
    
        var imgdata = req.body.imgdata; //body query
        // console.log(imgdata) 
        imgdata = imgdata.replace("data:image/png;base64,","")
        log(imgdata)
        https.get({
                hostname: 'aip.baidubce.com',
                path: '/oauth/2.0/token?' + param,
                agent: false
            },
            function (res2) {
                // 在标准输出中查看运行结果
                // res2.pipe(process.stdout);
                // console.log('statusCode:', res2.statusCode);
                // console.log('headers:', res2.headers);
    
                res2.on('data', (d) => {
                    console.log("认证成功")
                    // console.log('' + d); //将buffer转为字符串或者使用d.toString()
                    let b = JSON.parse('' + d); //将buffer转成JSON
                    // console.log(b)
                    var access_token = b["access_token"]
                    console.log(access_token)
                    // res.end(JSON.stringify(b));
                    data = {
                        'image': imgdata
                    }
         
                    request_url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/detection/XXXXDetectV1" + "?access_token=" + access_token
     
                    request({
                        url: request_url,
                        method: "POST",
                        json: true,
                        headers: {
                            "content-type": "application/json",
                        },
                        body: data
                    }, function (error, response, body) {
                        console.log(error)
                        // console.log(response)
                        // console.log(body)
                        if (!error && response.statusCode == 200) {
                            console.log(body) // 请求成功的处理逻辑
                            res.end(JSON.stringify(body));
                        }
                    });
    
    
                });
    
            }
        );
    
    })
    
    
    //启动服务---------------------------------------------------------------------------------------------
    var server = app.listen(port, function () {
    
        var host = server.address().address
        var port = server.address().port
    
        console.log("应用实例,访问地址为 http://%s:%s", host, port)
    
    })
  • 相关阅读:
    apache配置虚拟主机及虚拟目录
    Apache的443端口被占用解决方法
    Windows下XDebug 手工配置与使用说明
    php中输入这个网站的网址跳转到你定义的页面代码
    XAMPP的使用说明
    Linux致命命令
    wget 命令用法详解
    Linux 关机命令详解
    LINUX视频教程下载地址
    ubuntu 开机自动开启数字小键盘
  • 原文地址:https://www.cnblogs.com/defineconst/p/9946245.html
Copyright © 2011-2022 走看看