如何使用Spring Boot将表单数据写入服务器上的json文件

时间:2019-05-07 05:22:14

标签: json spring-boot

我正在使用弹簧靴(STS3)。我想做一些简单的页面,一个是注册页面,允许用户输入其用户名/密码进行注册(数据应另存为json文件在服务器上)。另一个是登录页面,允许用户输入用户名/密码并对照json文件进行登录。

我在下面的示例中使用表单,并将输入的用户名/密码转换为json格式。 https://lengstorf.com/code/get-form-values-as-json/

/**
 * Retrieves input data from a form and returns it as a JSON object.
 * @param  {HTMLFormControlsCollection} elements  the form elements
 * @return {Object}                               form data as an object literal
 */
const formToJSON = elements => [].reduce.call(elements, (data, element) => {

  data[element.name] = element.value;
  return data;

}, {});

const handleFormSubmit = event => {

  // Stop the form from submitting since we’re handling that with AJAX.
  event.preventDefault();

  // Call our function to get the form data.
  const data = formToJSON(form.elements);

  // Demo only: print the form data onscreen as a formatted JSON object.
  const dataContainer = document.getElementsByClassName('results__display')[0];

  // Use `JSON.stringify()` to make the output valid, human-readable JSON.
  dataContainer.textContent = JSON.stringify(data, null, "  ");

  // ...this is where we’d actually do something with the form data...
};

const form = document.getElementsByClassName('contact-form')[0];
form.addEventListener('submit', handleFormSubmit);

但是,上面的示例只能显示该网页上的json数据(在“ results__display”区域中)。我想将json数据保存到服务器上的文件中。该怎么做?


更新: 我发现了类似的问题(Save html form input to json file),但他们使用的是“ fs.writeFileSync”。似乎仅在node.js中有效。我将其作为Spring Boot应用程序运行,它不起作用。该怎么办?

'use strict';

 const fs = require('fs');

let student = {  
                    name: 'Mike',
                    age: 25, 
                    gender: 'Male',
                    department: 'English',
                    car: 'Honda' 
                };

                let data = JSON.stringify(student);  

fs.writeFileSync('file.json', data, finished);

                function finished(err)
                {
                    console.log('success');
                }

0 个答案:

没有答案