Не могу интегрировать запрос на свой сервер
Работаю с js не так давно. Нужно сделать 3rd party service - запрос на сторонний сервис. Он выполняет функцию генерации пароля.
Попробовал сделать запрос по примеру который нашел в интернете:
const https = require('https')
const options = {
hostname: 'www.passwordrandom.com',
port: 443,
path: '/query?command=password',
method: 'GET'
}
const req = https.request(options, res => {
console.log(`statusCode: ${res.statusCode}`)
res.on('data', d => {
process.stdout.write(d)
})
})
req.on('error', error => {
console.error(error)
})
req.end()
Он работает и генерирует пароль, однако не знаю как подключить к своему серверу. Вот моя попытка
router.get('/generate', Auth, async (req, res, next) => {
try {
const response = await axios.get('https://www.passwordrandom.com/query?command=password')
const password = await response.data;
res.json(password)
} catch (e) {
res.status(500).json({message:'Error'});
} finally{
next()
}
})
Фронт часть
import React, {useEffect, useState} from 'react';
import { AuthContext } from '../context/AuthContext';
import { useHttp } from '../hooks/http.hook';
import { useMessage } from '../hooks/message.hook';
import { useContext } from 'react';
export const UpdatePage = () => {
const {userId, token} = useContext(AuthContext)
const message = useMessage()
const {request, error, clearError}=useHttp()
const [oldpassword, setOldPassword] = useState('')
const [newpassword, setNewPassword] = useState('')
useEffect( () =>{
message(error)
clearError()
}, [error, message, clearError])
const updateHandler = async () => {
try {
const data = await request('/api/auth/update', 'POST', {userId ,oldpassword, newpassword}, {Authorization: `Bearer ${token}`})
message(data.message)
} catch (e) {}
}
const generateHandler = async () => {
try {
const newpassword = await request('/api/auth/generate', 'GET', null, {Authorization: `Bearer ${token}`})
setNewPassword(newpassword);
//message(data.message)
} catch (e) {}
}
return (
<div className= "row">
<div className='col s8 offset-m2'>
<div className="card amber darken-4">
<div className="card-content white-text">
<span className="card-title">Update password</span>
<div className="input-field">
<p>Old Password</p>
<input placeholder="Old Password" id="oldpassword" type="text" name="oldpassword" className="white-input" onChange={e => setOldPassword(e.target.value)} value={oldpassword} />
<p>New Password</p>
<input placeholder="New Password" id="newpassword" type="text" name="newpassword" className="white-input" onChange={e => setNewPassword(e.target.value)} value={newpassword} />
</div>
</div>
</div>
<div className="card-action">
<button className='btn grey darken-3' onClick={updateHandler} style={{marginRight: 10}}>Update</button>
<button className='btn grey darken-2' onClick={generateHandler}>Generate</button>
</div>
</div>
</div>
)
}
export default UpdatePage