将值从javascript(客户端)发送到express(服务器端)

时间:2017-08-06 06:51:20

标签: javascript node.js express

我在javascript中创建HTML DOM,您会看到以下代码。现在,我想将我在javascript中创建的输入值发送到服务器端。我用node.js和express框架创建的服务器。将值发送到服务器端后,我想将此值保存在我的json文件中。我知道如何读写json文件,但我的问题是发送这个值。这是我的javascript代码和快速代码。在javascript代码中,我想发送inTask变量,在服务器代码中我想在app.post中接收此值。

1.javascript代码

let newTask = [];
function addInput() {
    document.getElementById("link").style.display = "none";
    var input = document.createElement("input");
    input.type = "text";
    input.setAttribute("id", "inValue");
    document.getElementById("input").appendChild(input);
    var addBtn = document.createElement("button");
    var text = document.createTextNode("Add Task");
    addBtn.appendChild(text);
    addBtn.addEventListener("click", addTask);
    document.getElementById("input").appendChild(addBtn);
 }

 function addTask() {
     var inTask = document.getElementById("inValue").value;
     var xhttp = new XMLHttpRequest();
     xhttp.onreadystatechange = function() {
     if (this.readyState == 4 && this.status == 200) {
     document.getElementById("demo").innerHTML = this.responseText;
     }
    };
    xhttp.open("POST", "/login", true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-
       urlencoded");
    xhttp.send(document.getElementById("inValue").value);
     }
  1. server.js:
  2. var express = require("express");
    var bodyParser = require("body-parser");
    var app = express();
    var fs = require('fs');
    
    app.use(express.static(__dirname + "/static"));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended:true }));
    
    app.get("/" , function (req, resp, next) {
       resp.sendFile(__dirname + "/static/index.html");
    }) ;
    
    app.post("/login" , function (req, resp, next) {
      var jsonData = req.body.inValue;
      fs.writeFile("data.json", jsonData, function(err) {
      if(err) {
         return console.log(err);
        }
      });
      res.json(jsonData);
     });
    
     app.listen(3000);
     console.log("app running on port 3000");

1 个答案:

答案 0 :(得分:0)

您希望服务器文件中包含json-Data,但您不能发送json-Object。 与

交换xhttp.send(document.getElementById("inValue").value);
xhttp.send(JSON.stringify( { inValue: document.getElementById("inValue").value });