我正在尝试通过浏览器将JSON文件保存到客户端PC中。我正在按照以下步骤操作。你介意建议我出什么事了吗?我正在使用Node.js Express-Handlebars。
用户在文件 index.hbs 中按下此网址:
<a onclick="saveAs()" >Save As...</a>
然后下面的函数在同一文件 index.hbs 中触发。
function saveAs(){
//Doing some logic
post('/submit',JSON.stringify(listOfObjects))
}
function post(path, params, method) {
method = method || "post"; // Set method to post by default if not specified.
// The rest of this code assumes you are not using a library.
// It can be made less wordy if you use one.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
for(var key in params) {
if(params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
之后,在 index.js 中,我将按照以下方式处理发布请求:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express'});
});
router.post('/submit', function(req, res, next) {
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(req.body.listOfObjects));
res.redirect('/');
});
module.exports = router;
但是什么也没发生。您能帮我如何在用户PC中保存(下载)文件吗?