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;
nodejs调用百度云图像识别接口
最新推荐文章于 2024-04-16 12:04:36 发布