0

I want to submit input value from HTML form to Node-js. Node-js should assign that value as an argument to a Solidity function. But the Error: TypeError: Cannot read property 'oinput' of undefined is shown. What should i do? Please help a beginner.

HTML:

<!DOCTYPE html>
<html>
<head>
<title>Alireza</title>
<body>
<form id="FORM" name="FORM" method="POST" action="http://127.0.0.1:1408">
    <input id="Finput" name="oinput" value="Null" onclick="this.form.submit()"/>

</form>
<script>
document.forms[0].oinput.value=prompt("Type a thing: ","Here ...");
</script>
</body>
</html>

app.js:

var express=require('express');
var app=express();
var fs=require('fs');
var http = require('http');
var bodyParser=require('body-parser');
var Web3=require('web3');
var web3=new Web3('ws://127.0.0.1:8545');

var YerevanJSON="E:/Alireza/build/contracts/Yerevan.json";
var YerevanJS=JSON.parse(fs.readFileSync(YerevanJSON));
var YerevanABI=YerevanJS.abi;

var Yerevan=new web3.eth.Contract(YerevanABI, "0x1E6B6524e7da86bafa5ac948b38dA68e6841f0c7");
    Yerevan.defaultAccount="0x152AfF6BBF98F2FF2EFAdA32E2ba85CC231cbA13";

app.post("/", function(q,r){

Yerevan.methods.eval(q.body.oinput).send({from:"0x33aa0ba26Dc247BA5d94545344c413949B746360"});
});

app.listen(1408, err=>{ console.log('ERROR')});

Solidity:

    pragma solidity ^0.5.12;

    contract Yerevan{
    string public city;
    function eval(string memory sense) public returns(string memory){
        city=sense;
        return city;
       }
    }

1 Answer 1

1

You have included body-parser on to the file but hasn't asked the app use it. add below line

 const bodyParser = require("body-parser");
 // for parsing application/json
 app.use(bodyParser.json());
 //for parsing application/xwww-form-urlencoded
 app.use(bodyParser.urlencoded({ extended: true }));

You are using var, start using const and let instead.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.