I don't know how to send a image to express server via post when i capture a image from react-webcam lib, someone can help me? I'm tried to convert to base64, but it's not works as expected, i can't finding a way to do this, and i don't know what i'm doing wrong, i'm tried to use JSON, but it also doesn't works.
Thanks guys
...
Takecapture = async() {
var screenshot = this.webcam.current.getScreenshot();
console.log(screenshot.toString())
var data = screenshot.toString().replace(/^data:image\/jpg;base64,/, "");
var buf = Buffer.from(data, 'base64');
fetch('/photo', {
method: 'POST',
data: { base64:buf }
}).then(
()=>{console.log('screenshot sended sucessfully')}
)
}
render(){
return(
<Webcam
id='inputVideo'
ref={this.webcam}
audio={false}
style={{borderRadius: '350px'}}
height={400}
width={200}
videoConstraints={videocons}
screenshotFormat='image/jpeg'
/>);
}
....
server.js
app.post('/photo',(req, res, next)=>{
buf = req.data.base64;
fs.writeFile(__dirname+'/webapp/public/photos/face_caption.png', buf, (err)=>{})
res.status(200).send('image writed')
})
I'm receiving this error(500) from server:
TypeError: Cannot read properties of undefined (reading 'base64')
at /mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/server.js:20:18
at Layer.handle [as handle_request] (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/layer.js:95:5)
at next (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/layer.js:95:5)
at /mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/index.js:335:12)
at next (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/index.js:275:10)
at /mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/server.js:11:3
at Layer.handle [as handle_request] (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/layer.js:95:5)
TypeError: Cannot read properties of undefined (reading 'base64')
at /mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/server.js:20:18
at Layer.handle [as handle_request] (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/layer.js:95:5)
at next (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/layer.js:95:5)
at /mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/index.js:335:12)
at next (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/index.js:275:10)
at /mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/server.js:11:3
at Layer.handle [as handle_request] (/mnt/c/Users/RenanPC/Documents/Projetos/ProjetoReact/docapp/node_modules/express/lib/router/layer.js:95:5)