在客户端PC中保存或下载json文件

时间:2018-10-18 16:29:36

标签: node.js json handlebars.js

我正在尝试通过浏览器将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中保存(下载)文件吗?

0 个答案:

没有答案