Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON文件保存到express中的服务器(节点)_Javascript_Node.js_Express - Fatal编程技术网

Javascript 将JSON文件保存到express中的服务器(节点)

Javascript 将JSON文件保存到express中的服务器(节点),javascript,node.js,express,Javascript,Node.js,Express,在express中具有此函数,可在文件夹中写入JSON文件 var savingtheJson=function(path, jsonObject, callback){ jsonfile.writeFile(file2, jsonO, callback); } 我想知道保存后如何从浏览器访问/读取此文件 如果我这样做: savingtheJson('/json/myfile.json', jsonObj, function(){ console.log("done

在express中具有此函数,可在文件夹中写入JSON文件

var savingtheJson=function(path, jsonObject, callback){
  jsonfile.writeFile(file2, jsonO, callback);
}
我想知道保存后如何从浏览器访问/读取此文件

如果我这样做:

savingtheJson('/json/myfile.json', jsonObj, function(){
            console.log("done it!");
        });
当我转到浏览器并键入:

http://localhost:8080/json/myfile.json
当然,我从express中得到一个错误,无法得到。。。。因为我认为他正试图像一个特定的请求一样解决它

如何将此文件存储到为此目标声明的静态文件夹中 app.useexpress.static__dirname+'/public'


保存后如何访问此文件?

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

为此,您可以使用内置中间件

在下面的示例中,我创建了一个名为/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);
});

静态服务目录位于“/public”中,就像您提到的那样。但是在我看来,你应该在你的web服务中提供一个新的端点来检索文件。你的意思是在应用程序上创建一个端点来读取文件,就像在本例中使用这种os函数一样?您肯定不会像在服务器应用程序中那样读取文件。我的意思是创建一个新路由,例如/json/:myfile,并在GET上异步读取该文件。您只需调用require即可将json文件加载到变量中!