Отправьте значение из HTML формы в Node-js - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу отправить входное значение из HTML формы в Node-js. Node-js должен присвоить это значение в качестве аргумента функции Solidity. Но ошибка: TypeError: Cannot read property 'oinput' of undefined отображается. Что мне делать? Пожалуйста, помогите новичку.

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>

приложение. 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')});

Солидность:

    pragma solidity ^0.5.12;

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

1 Ответ

1 голос
/ 21 февраля 2020

Вы включили body-parser в файл, но не попросили приложение использовать его. добавить строку ниже

 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 }));

Вы используете var, начните использовать const и позвольте вместо этого.

...