我已经为这个问题摸不着头脑有一段时间了。我计划使用 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/