我正在尝试创建一个使用 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 ,但出现了一个新错误(我不记得了,但如果这对于让应用程序正常运行很重要,我可以再试一次。)
谁能给我一些关于如何让应用程序运行的建议?