【问题标题】:Write JSON with query pseudo使用查询伪编写 JSON
【发布时间】:2017-04-13 08:06:02
【问题描述】:

我在 node.js 中有一个小网站,当有人想要注册时,我们在这里调用一个函数(一个外部文件),这是我编写 JSON 的部分:

{
    nouveauMembre = {};
    nouveauMembre.pseudo = query.pseudo;
    nouveauMembre.password = query.password;
    listeMembre[listeMembre.length] = nouveauMembre;

    contenu_fichier = JSON.stringify(listeMembre);

    fs.writeFileSync("membres.json", contenu_fichier, 'utf-8');
}

我们在 JSON menbres.json 中编写伪密码和密码,但我想编写另一个文件,该文件称为实际选择的伪伪(查询)

所以我写:

nouveauMembre = {};
nouveauMembre.pseudo = query.pseudo;
nouveauMembre.password = query.password;
listeMembre[listeMembre.length] = nouveauMembre;

contenu_fichier = JSON.stringify(listeMembre);

fs.writeFileSync("membres.json", contenu_fichier, 'utf-8');

AddMembre = {};
AddMembre.pseudo = query.pseudo;
AddMembre.email = query.email;
AddMembre.nom = query.nom;
AddMembre.prenom = query.prenom;
AddMembre.password = query.password;

new_file = JSON.stringify(AddMembre);

fs.writeFileSync("query.pseudo.json", new_file, 'utf-8')

}

但我不能写“query.pseudo.json”我怎么写这个? 我已经尝试过了:

fs.writeFileSync(query.pseudo".json", new_file, 'utf-8');

但不工作... :'(

感谢您的帮助!

【问题讨论】:

  • query.pseudo + ".json"
  • my answer 对您有帮助吗?有没有cmets?

标签: javascript jquery json node.js fs


【解决方案1】:

正如 Chris G 已经在评论中发布的那样,你写的是 query.pseudo".json" 而不是 query.pseudo+".json" - 你应该会收到一个语法错误告诉你。

但我发现您的代码存在一些更严重的问题。

首先,一旦您获得更多并发连接,您将在使用writeFileSync(或readFileSync 或任何其他-Sync 函数)时遇到麻烦。这些是阻塞调用,应该只在事件循环的第一个滴答声中使用。对于服务请求,您应该只使用异步版本(名称中不带 Sync)。

其次,您有一个严重的安全问题,任何人都可以使用包含斜杠或双点的假名写入文件系统中的任何位置。

第三,您以纯文本形式存储用户密码,这是不可接受的,并且在许多情况下可能会给您带来法律麻烦。

您似乎正在实现自己的数据库,但您没有考虑:

  1. 安全
  2. 性能
  3. 比赛条件

您可以尝试修复所有这些问题,以使您的系统安全(通过清理输入数据)和高性能(通过不使用阻塞功能)并修复一些更小的问题,或者您可以使用工作并经过测试的解决方案来存储您的数据。

如果您不想使用 MongoDB、RethinkDB 或 PostgreSQL 等独立数据库,并且希望将所有数据存储在文件系统上的文件中,那么您可以使用类似的东西:

还有很多其他的。

我不建议任何没有经验的人构建数据库管理系统,这正是您在这里所做的。

【讨论】:

  • 谢谢亲爱的rsp
猜你喜欢
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 2011-01-23
相关资源
最近更新 更多