如何在节点js中创建json文件

时间:2015-11-22 22:01:08

标签: json node.js

我在一个管理足球联赛的网站上工作,利用angularjs& nodejs没有任何数据库...... 我对teamInfo.json这样对待:

var express = require('express'),
http = require('http');

var fs = require('fs');
var teamsInfo = require('./data/teamsInfo.json');

var app = express()
  .use(express.bodyParser())
  .use(express.static('public'));

app.get('/teamsInfo', function  (req, res) {
  res.json(teamsInfo);
});

app.post('/teamsInfo', function  (req, res) {
  teamsInfo.push(req.body);
  fs.writeFile('./data/teamsInfo.json', JSON.stringify(teamsInfo));
  res.json(req.body);
});

app.post('/teamsInfo/:id', function  (req, res) {
  //something
});

它工作正常,但这不是重点,我的问题是当你想存储和显示周结果给用户。 我们的结果数据存储如下:result1.json - result2.json - result3.json和... 如果我想用这个json来对待teamsInfo.json我应该对许多人来说并发布函数来处理请求和响应。重点是他们所有人都做同样的事情,因为结果json的格式是相同的。

我的问题是:

  1. 如何在用户点击nextWeekResult函数时创建json文件? (我通过计数器评估名称,然后在我的系统中进行物理创建)

  2. 如何只编写一个处理所有result.json文件的get和post函数?

  3. 感谢。

1 个答案:

答案 0 :(得分:1)

我不太清楚你的要求是什么,但是为了动态加载/保存文件,你可以使用提供的id来构建动态文件名来定位。如果您要让最终用户指定要使用的ID,请根据ID动态获取文件的示例:

app.get('/teamsInfo/:id', function(req, res) { 
  // dynamically build file to load based on id
  var filename = util.format('teamsInfo%s', req.params.id);
  var teamInfox = require(util.format('./data/%s.json, filename));
  res.json(teamsInfox);
});