【发布时间】:2014-02-28 00:28:45
【问题描述】:
我正在制作一个用 nodejs 编写的服务器,它通过server.on('connection', function(conn) { 接收文件,该文件将该数据存储在缓冲区中。
此数据是一个日志文件,其中每行有 3 个重要列:
时间 - 源文件 - 消息
例如:
2014-02-05 22:12:33,268 - test.py:__init__() - This is message
2014-02-05 22:12:33,268 - test.py:__init__() - This is message 2
我想将此数据存储在 mongoDB 系统上,将接收到的日志文件分成行并将这些行分成列。我考虑使用客户端 IP 作为密钥。
现在我正在创建放置孔数据的文件,因为我不知道如何逐行读取以这种方式存储的数据,因为 readline 模块仅用于文件。
任何帮助都会很棒。谢谢
这是我服务器的小代码:
var net = require('net'),
fs = require('fs'),
buffer = require('buffer');
var server = net.createServer(function(conn) {
console.log('server connected');
});
var HOST = '127.0.0.1';
var PORT = '9001';
var DEST_DIR = './logs';
server.listen(PORT, HOST, function() {
// Check if DEST_DIR exists
if (!fs.existsSync(DEST_DIR)) {
console.log(DEST_DIR + ' not found. Creating it now...');
fs.mkdir('logs', '700');
}
//listening
console.log('Listening on port ' + PORT + '\n');
server.on('connection', function(conn) {
var current_time = Date.now();
console.log('connection made...\n')
conn.on('data', function(data) {
console.log('data received');
console.log('data is: \n' + data);
// Create file
fs.writeFile(DEST_DIR + '/' + current_time + '.txt', data, function(err){
if(err){
console.log(err);
}else{
console.log("File saved");
}
});
});
})
});
【问题讨论】:
-
我没有看到任何与 MongoDB 相关的代码。所以,不清楚你想寻求什么帮助。
-
我可以稍后弄清楚,但我想准备缓冲区以逐行读取并将其分成每行的列。谢谢
-
你用什么分开的列?发布示例数据条目
标签: javascript node.js