Javascript 使用SSL证书执行axios请求
我尝试使用SSL证书查询Puppet DB API进行身份验证。因此,在名为Version.js的组件中,我执行了以下未完成的代码:Javascript 使用SSL证书执行axios请求,javascript,node.js,reactjs,ssl,axios,Javascript,Node.js,Reactjs,Ssl,Axios,我尝试使用SSL证书查询Puppet DB API进行身份验证。因此,在名为Version.js的组件中,我执行了以下未完成的代码: import fs from 'fs'; import axios from 'axios'; import https from 'https'; import { readFileSync } from 'fs'; let versionAPI = 'https://puppetdb:8081/pdb/query/v4/version'; let age
import fs from 'fs';
import axios from 'axios';
import https from 'https';
import { readFileSync } from 'fs';
let versionAPI = 'https://puppetdb:8081/pdb/query/v4/version';
let agent = new https.Agent({
cacert: fs.readFileSync('ca.pem'),
cert: fs.readFileSync('cert.pem'),
key: fs.readFileSync('key.pem')
});
class Version extends Component {
getDBVersion = () => {
axios.get(versionAPI, agent)
.then(response => {
const ver = response;
console.log(ver);
})
}
render() {
return (
<Button click with trigger this.getDBVersion()>
);
}
export default Version;
添加package.json
错误消息:
TypeError: Object(...) is not a function
Module../src/Components/AgentPages/Version.js
I:/node/front-end_ui/src/Components/AgentPages/Version.js:14
11 |
12 |
13 | let agent = new https.Agent({
> 14 | cacert: readFileSync('./ca.pem'),
请帮忙 您可以使用Web包开发服务器的选项。编辑package.json部分脚本。将反应脚本更改为开始
对于Windows cmd.exe,设置HTTPS=true&&react脚本启动
对于Linux,macOS Bash HTTPS=true
您可以使用webpack dev服务器的选项。编辑package.json部分脚本。将反应脚本更改为开始
对于Windows cmd.exe,设置HTTPS=true&&react脚本启动
对于Linux,macOS Bash HTTPS=true
谢谢你的回复。你的意思是我可以运行:node src\server.js-https-cert=../../../ssl/server.pem-key=../../ssl/server.pem-cacert=../../ssl/ca.pem。即使我可以运行它,我对server.js做了哪些更改,如何初始化到Puppet API的代理连接,以及如何呈现GET-request API响应?@reactjs_user-https需要用于前端开发服务器。你能为前端显示你的开发配置吗?我现在没有使用任何webpack.config.js文件。我的应用程序是一个简单的SPA,它发出一些API请求并呈现内容。要使用API进行身份验证,我需要使用SSL证书。我认为在执行axios.get时,读取文件或将其作为头或选项传递是非常容易的。如果我需要创建webpack.config.js并添加一些配置,请告诉我。我很乐意测试它。@reactjs_用户模块fs是Node.js,他在浏览器中不可用。您只需要使用https发送请求。从fs的错误判断,您已经在使用webpack。请显示您的npm命令,它运行前端构建。我只是运行npm start来打开我的UI。我不知道如何使用node.js中的模块“fs”,然后使用http.Agent在前端发出axios请求?谢谢您的回复。你的意思是我可以运行:node src\server.js-https-cert=../../../ssl/server.pem-key=../../ssl/server.pem-cacert=../../ssl/ca.pem。即使我可以运行它,我对server.js做了哪些更改,如何初始化到Puppet API的代理连接,以及如何呈现GET-request API响应?@reactjs_user-https需要用于前端开发服务器。你能为前端显示你的开发配置吗?我现在没有使用任何webpack.config.js文件。我的应用程序是一个简单的SPA,它发出一些API请求并呈现内容。要使用API进行身份验证,我需要使用SSL证书。我认为在执行axios.get时,读取文件或将其作为头或选项传递是非常容易的。如果我需要创建webpack.config.js并添加一些配置,请告诉我。我很乐意测试它。@reactjs_用户模块fs是Node.js,他在浏览器中不可用。您只需要使用https发送请求。从fs的错误判断,您已经在使用webpack。请显示您的npm命令,它运行前端构建。我只是运行npm start来打开我的UI。我不知道如何使用node.js中的模块“fs”,然后使用http.Agent在前端发出axios请求?
{
"name": "front-end_ui",
"version": "0.1.0",
"private": true,
"dependencies": {
"axios": "^0.19.0",
"bootstrap": "^4.3.1",
"elasticsearch": "^15.4.1",
"fs": "0.0.2",
"react": "^16.11.0",
"react-dom": "^16.11.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.2.0"
},
"scripts": {
"start": "react-scripts start",
"test": "react-scripts test",
"eject": "react-scripts eject",
"server": "node src/server.js"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version",
"ie 11"
]
},
"devDependencies": {
"cors": "^2.8.5",
"express": "^4.17.1"
},
"proxy": "http://localhost:80"
}
TypeError: Object(...) is not a function
Module../src/Components/AgentPages/Version.js
I:/node/front-end_ui/src/Components/AgentPages/Version.js:14
11 |
12 |
13 | let agent = new https.Agent({
> 14 | cacert: readFileSync('./ca.pem'),
import axios from 'axios';
let versionAPI = 'https://puppetdb:8081/pdb/query/v4/version';
class Version extends Component {
getDBVersion = () => {
axios.get(versionAPI)
.then(response => {
const ver = response;
console.log(ver);
})
}
render() {
return (
<Button click with trigger this.getDBVersion()>
);
}
export default Version;