繁体   English   中英

用于更新 JSON 文件的 Node.JS 服务器端脚本

[英]Node.JS server side script to update JSON file

我已经部分编写了一个 NODE.JS 文件,以使用从客户端收到的数据更新 JSON 文件。 该帖子成功运行。 Get 命令没有。 我想知道是否有更好的方法来做到这一点? 我有大约 6 个不同的回调选项可供编写。 都不同。 我想知道是否有一个 node.JS 脚本已经完成,它具有我需要的所有东西。 或者如果有一种不同的语言可以使它更容易。

这是节点

var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {

console.log('Request received: ');
if (req.method == 'POST') {
req.on('data', function (chunk) {
fs.writeFile("comments-data.json", chunk, function(err) {
    if(err) {
        return console.log(err);
    }

    console.log("The file was saved!");
})
});
res.end('{"msg": "success"}');
};
if (req.method == 'GET') {
req.on('data', function (chunk) {
fs.readFile('comments-data.json', 'utf8', function (err, data) {
  if (err) throw err;
  obj = JSON.parse(data);
  return data;
});
});
res.end(data);
};
}).listen(8080, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8080/');

这是AJAX调用:

                postComment: function(commentJSON, success, error) {
                        $.ajax({
                            type: 'post',
                            url: 'http://127.0.0.1:8080',
                            data: commentJSON,
                            success: function(comment) {
                                success(comment)
                            },
                            error: error
                        });
                },

但是我正在使用的 jquery 插件有一个对各种事情的 ajax 调用。 我需要在调用中执行 GET、POST、PUT、DELETE,有时还需要多个。

这是我正在使用的所有回调的完整列表:

http://viima.github.io/jquery-comments/#link-3-6

使用 express 你可以很容易地做到这一点。

const express = require('express');
const app = express.Router();

//POST Request
app.post('/',(req, res, next)=>{
  fs.writeFile("comments-data.json", chunk, function(err) {
     if(err) {
        return console.log(err);
     }

     console.log("The file was saved!");
     res.json({'status': 'Success'})
  })
})

//GET Request
app.get('/',(req, res, next)=>{
  fs.readFile('comments-data.json', 'utf8', function (err, data) {
    if (err) throw err;
    obj = JSON.parse(data);
    res.json({'status': 'Success', 'data':data})
  });
})

至于您关于在不同模块中编写它的问题。 那是基于您采用的模式。 有各种可用的 nodejs 模式,例如。 基于控制器或基于类。 这一切都取决于你觉得什么舒服。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM