reactjs - 创建一个使用 google cloud-vision 的 reactjs 应用程序
问题描述
我正在尝试创建一个使用 google-cloud-vision 的 Reactjs 应用程序,但我正在努力让示例代码正常工作。我刚刚开始学习 React-js,所以对于如何更改为 Node.Js 创建的示例代码以使其正常工作,我有点迷茫。
我首先访问了https://cloud.google.com/vision/docs/quickstart-client-libraries?authuser=1&hl=sv并启用了所有必需的东西(计费并启用了 api)。然后我创建了一个新的服务帐户并下载了 json 文件。
然后我使用命令“npx create-react-app cloud-vision”在我的电脑上创建了一个新项目。我在放置 json 文件的项目的根目录中创建了一个凭据文件夹。我创建了一个 .env 文件,在其中输入了环境变量:
GOOGLE_APPLICATION_CREDENTIALS="C:\Development\Projects\cloud-vision\credentials\我的第一个项目-b38ff120f2ad.json"
然后我使用以下命令安装了 cloud-vision npm: npm install --save @google-cloud/vision
下一步是从https://cloud.google.com/vision/docs/ocr?authuser=1&hl=sv找到我想要使用的 OCR 的示例代码
然后我尝试了 npm start
import React from 'react';
import logo from './logo.svg';
import './App.css';
import testImage from './images/image--002.png'
import vision from '@google-cloud/vision'
function App() {
const googleVison = async () => {
// const vision = require('@google-cloud/vision');
// Creates a client
const client = new vision.ImageAnnotatorClient();
/**
* TODO(developer): Uncomment the following line before running the sample.
*/
const fileName = testImage;
// Performs text detection on the local file
const [result] = await client.textDetection(fileName);
const detections = result.textAnnotations;
console.log('Text:');
detections.forEach(text => console.log(text));
}
googleVison()
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
由于我是 React 新手并且没有真正获得 Node.js,我主要希望在控制台中显示一些我可以理解的东西,以便我可以做更多的研究。我的第一个问题是我不知道如何替换“const vision = require('@google-cloud/vision');” 所以我试着只导入它。那正确吗?另外我不知道我是否可以直接使用 Node.js 代码,或者我是否必须以某种方式对其进行更改。但是,如果我在应用程序启动时查看控制台,我会收到一条错误消息:“找不到模块:无法解析 'C:\Development\Projects\cloud-vision\node_modules@grpc\grpc-js\构建\src"
然后我尝试了 npm 安装 http2 ,但出现了一个新错误(我不记得了,但如果这对于让应用程序正常运行很重要,我可以再试一次。)
谁能给我一些关于如何让应用程序运行的建议?
解决方案
首先,React 不会识别你的环境变量GOOGLE_APPLICATION_CREDENTIALS
。REACT_APP_
您必须为所有自定义环境变量使用前缀。
您需要做的是在初始化时
指定您的 GoogleprojectId
和 JSON 密钥文件,如下所示:credentials
vision client
const options = {
credentials = require('/path/to/key/json'),
projectId = 'Your Google Cloud Project ID'
};
const client = new vision.ImageAnnotatorClient(options);
推荐阅读
- python - f.tell() 返回一个过高的数字
- node.js - How to test my node/express app is making an API call (through axios)
- java - java.nio.file 包未检测到目录更改
- java - 通过抛出异常将 spring-data-jpa 升级到 1.11.13.RELEASE 顺序
- c# - 如何在Visual Studio项目c#中引用包含的文件
- linux - 如何更改 gitolite 上的存储库位置?
- email - 在 iframe 中跟踪邮件公式的事件
- python - python的币安加密警报机器人
- javascript - 当我应用条件跳过键为偶数的数组值时,为什么会得到空结果?
- php - php中的日期错误,我无法在图表中显示日期