在快速(节点)中将JSON文件保存到服务器

Frn*_*Sgz 0 javascript node.js express

在express中具有此功能,可将JSON文件写入文件夹

var savingtheJson=function(path, jsonObject, callback){
  jsonfile.writeFile(file2, jsonO, callback);
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何保存后如何从浏览器访问/读取此文件.

如果我这样做:

savingtheJson('/json/myfile.json', jsonObj, function(){
            console.log("done it!");
        });
Run Code Online (Sandbox Code Playgroud)

当我进入浏览器并输入时:

http://localhost:8080/json/myfile.json
Run Code Online (Sandbox Code Playgroud)

当然我从明确的"无法获取......"中得到错误,因为我认为正在尝试像特定请求一样解决它

如何将此文件存储到为此目标(app.use(express.static(__dirname + '/public'))声明的静态文件夹中?

保存后如何访问此文件?

Wil*_*son 9

首先,您需要定义哪个文件夹将公开,以便您可以将json文件保存在其中.

您可以使用内置的中间件express.static来实现此目的.

在下面的示例中,我创建了一个端点/users?name=wilson&age=32,该端点接收查询数据,以获取用户的信息作为名称和年龄,然后您可以将其保存为名为person.json的文件.

因此,在使用上面提到的端点之后,您将能够成功地使用您的文件http://localhost:4040/person.json.

var express = require('express');
var app = express();
var port = 4040;
var fs = require('fs');

app.use(express.static('public'));

app.get('/users', function(req, res) {
  var name = req.query.name;
  var age = req.query.age;

  var person = {
    name: name,
    age: age
  };

  savePersonToPublicFolder(person, function(err) {
    if (err) {
      res.status(404).send('User not saved');
      return;
    }

    res.send('User saved');
  });
});

function savePersonToPublicFolder(person, callback) {
  fs.writeFile('./public/person.json', JSON.stringify(person), callback);
}

app.listen(port, function() {
  console.log('server up and running at port: %s', port);
});
Run Code Online (Sandbox Code Playgroud)