在node.js中从客户端获取并发请求

时间:2018-01-24 06:12:38

标签: json node.js http file-handling

我正在尝试使用 Node.js HTTP模块创建服务器,其中服务器从客户端获取作为JSON数据的并发请求,将其存储到JSON文件中,然后从文件中读回并将其作为回复发送给客户。

我有进步,因为你可以看到我的下面的代码。

问题

1)在我的代码中我关闭了打开的文件..在这里,"文件成功关闭"首先是log,然后是" Saved"日志消息。 fs.open创建fd和一个线程,同时处理fs.writeFile,其他执行fs.close 如何以正确的方式编写代码?

2)如何让客户端向我在这里创建的服务器发出并发的http请求。我不想使用Express 。我想先学习基础知识。

var http = require('http');
var fs = require('fs');

var server = http.createServer(function (request, response) {
    var body = '';

    request.on('data', function (data) {
        body += data;
    });

    request.on('socket', function (){ 
        var start = new Date(); 
            console.log(start);
    });

    request.on('end',function(){
        var clientData = body;

        fs.open('jsonData.json', 'r+', function(err, fd) {
            if(err){
                    fs.writeFileSync('jsonData.json', clientData+"\n",  function(err) {
                        if(err){return console.error(err);}
                        console.log("file created...!!\n");

                    });
            }
            else{
                //append data

                fs.appendFile('jsonData.json', clientData+"\n", function (err) {
                    if (err) {return console.error(err);}
                    console.log('Saved!');

                });

                if(fd>=1){
                    fs.close(fd, function(err){
                        if (err){
                            console.log(err);
                        } 
                        console.log("File closed successfully.");
                    });
                }
            }

        });

        //open and read to send response


        response.writeHead(200, 'OK', {'Content-Type': 'text/html'});
        response.end('Data received.');
    });


}).listen(8080,'127.0.0.1',function(){
    console.log("listening to server at http://localhost:8080");
});

0 个答案:

没有答案