javascript - 将表单数据写入 json 文件 - javascript

标签 javascript jquery json node.js

我已经为这个问题摸不着头脑有一段时间了。我计划使用 Electron 开发桌面应用程序。因此,我正在使用 Node.js 和 Express.js 开发一个应用程序。我有一个简单的 app.js 文件,用于启动我的网站代码:

var express = require("express");
var app = express();

app.use(express.static(__dirname + '/public'));

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

然后我的页面上有一个表单:

<form>
    <input type="text" name="name">
    <input type="text" name="url">
    <button type="submit">Submit</button>
</form>

在 script.js 文件的提交按钮上设置了一个 jQuery 事件处理程序:

$(document).ready(function(){
    var text;
    $('form').submit(function( event ) {
        text = $( this ).serializeArray();
        console.log( text );
        event.preventDefault();
    });
});

如何将从表单中获取的文本写入 JSON 文件(关闭并重新打开应用程序时可以再次读取该文件)。

有这样的问题和答案:Writing files in Node.js

我明白这一点,但如何从提交按钮执行该代码?

我的文件结构非常简单:

|- app.js
|- package.json
|- node_modules
|- public_
   |- data.json
   |- index.html
   |- jquery.js
   |- script.js
   |- style.css
   |- bootstrap.min.css
   |- bootstrap.min.js

最佳答案

在客户端:

$(document).ready(function(){
    var text;
    $('form').submit(function( event ) {
        text = $( this ).serializeArray();
        // Send data to server
        $.post('/saveFile', {data: text});
        event.preventDefault();
    });
});

因此,您可以使用 AJAX 请求发送数据。查看更多关于 jQuery.post()

在服务器上:

app.post('saveFile', function(req, res) {
    // Write to file, I think received data is in req.body.data 
});

这里我们创建一个名为 saveFile 的路由,用于接收并响应 POST 请求。您可以在此处将接收到的数据写入您的文件。

所以,你会得到这样的东西:

app.post('saveFile', function(req, res) {
    fs.writeFile("save.txt", req.body.data, function(err) {
        if(err) {
            return console.log(err);
        }

        console.log("The file was saved!");
        res.end("This message will be sent back to the client!");
    }); 
});

关于javascript - 将表单数据写入 json 文件 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36654474/

相关文章:

javascript - GAS 找到所有匹配的值,然后通过电子邮件将它们一起发送

JavaScript 窗口状态

jQuery - 检查数字数组的顺序

javascript - CustomValidator 客户端函数不会为空文本框触发

javascript - 编写相同 Alexa 函数的不同方式

jquery - jQuery 中 $ 和 $() 之间的区别

javascript - 如何在 jQuery 插件中绑定(bind)此事件处理程序?

php - JQuery UI 自动完成 JSON php 输出格式

ruby-on-rails - 这是什么日期格式?

json - 通过 JSON 的 Angular 2 路由映射