如何将来自html输入字段的文本存储在node.js变量中?

时间:2018-05-28 17:19:15

标签: javascript html css node.js

我的node.js代码如下所示:

var connect = require('connect'); 
var serveStatic = require('serve-static'); 

connect().use(serveStatic("WebDir")).listen(80, function(){ 
    console.log('Server running on port 80...'); 
});

我想使用API​​并使用node.js中输入字段中的数据 我怎么能完全做到这一点。 Input字段只是HTML中的普通输入字段

1 个答案:

答案 0 :(得分:0)

您可以使用Node.js Express创建一个简单的测试设置..

2个文件:index.js,index.html

<强>的index.html

<html>
<head>
      <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
      <script type="text/javascript">

        var sendInput = function() {
            var inputField = $('#inputField').val();

            console.log(inputField);

            $.ajax({
                type: 'POST',
                url:  'http://localhost:3000/inputData',
                crossDomain: true,
                data: JSON.stringify({ inputField: inputField }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result, status){
                    document.getElementById("output").innerHTML = result.nodeVariable;
                },
                error: function (errorMessage) {
                    console.error('Error: ', errorMessage);
                }
            });
        }

      </script>
</head>
<body topmargin="40" leftmargin="40">
 <div id="result">Loading..</div>
 </br>
 <button onClick="sendInput()">Send input to Node.js</button> : <input type="text" id="inputField" value="test value"><br>
 <div>
 <br/>Result: <p id="output"></p>
 <div>
 </body>
</html>

服务器端,这是node.js脚本。

<强> index.js

const bodyParser = require('body-parser');
const express = require('express');
const port = (process.env.PORT || 3000);

const app = express();

app.use(express.static(__dirname));
app.use(bodyParser.json());

app.post('/inputData', (req, res, next) => {

    console.log('/inputData post: ', JSON.stringify(req.body));
    // Read the variable..
    var inputField = req.body.inputField;
    console.log('Input field: ', inputField);

    res.status(201).send(JSON.stringify({status: 'OK',  nodeVariable: inputField + " - updated by node."}))
});

app.listen(port);
console.log('Express listening on port ' + port);

转到浏览器上的http://localhost:3000进行测试。