2016-03-30 14 views
1

私はnodejsで小さなチャットアプリを作っていますが、今は2人がチャットしているときに小さなファイルを送ることができるようにしようとしていますその他。小さなnodejsチャットアプリで他の人にファイルを送信する方法

私はちょうどノードの学習を開始したので、少し混乱します。私はこの仕事をしようとしているが、私はそれをやろうとしているのかどうかも分からない。

だから、すべてのヘルプは大歓迎:)

ところでvarファイルは、入力タイプ=ファイルからファイルです。

ここに私のコードです:

var express = require("express"); 
    var app = express(); 
    var fs = require("fs"); 
    var port = 8888; 


     // fs.readFile(sendFile, function (err, data) { 
     // if (err) { 
     //   return console.error(err); 
     // } 
     // console.log("Asynchronous read: " + data.toString()); 
     // }); 

    app.set('views', __dirname + '/tpl'); 
    app.set('view engine', "jade"); 
    app.engine('jade', require('jade').__express); 
    app.use(express.static(__dirname + '/public')); 

    app.get("/", function(req, res){ 
     res.render("page"); 
    }); 

    var io = require('socket.io').listen(app.listen(port)); 

    io.sockets.on('connection', function (socket) { 
     socket.emit('message', { message: 'Welcome to the chat :)' }); 
     socket.on('send', function (data) { 
      io.sockets.emit('message', data); 
     }); 
    }); 

    io.sockets.on('sendFile', function(data){ 
     socket.emit('getFile',data) 
    }); 

chat.js

 window.onload = function() { 

      var messages = []; 
      var socket = io.connect('http://'+location.host); 
      var field = document.getElementById("field"); 
      var sendButton = document.getElementById("send"); 
      var content = document.getElementById("content"); 
      var name = document.getElementById("name"); 
      var file = document.getElementById("file").files; 


     // file.onchange = function(e) { 
     // var file = document.getElementById("file").files; 
     // console.log(file); 
     // } 

      socket.on('message', function (data) { 
       if(data.message) { 
        messages.push(data); 
        var html = ''; 
        for(var i=0; i<messages.length; i++) { 
         html += '<b>' + (messages[i].username ? messages[i].username : 'Server') + ': </b>'; 
         html += messages[i].message + '<br />'; 
        } 
        content.innerHTML = html; 
       } else { 
        console.log("There is a problem:", data); 
       } 
      }); 

      socket.on('getFile', function (data) { 
       console.log(data); 
      }); 


      sendButton.onclick = sendMessage = function() { 
       if(name.value == "") { 
        alert("Please type your name!"); 
       } else { 
        socket.emit('sendFile', file); 
        var text = field.value; 
        socket.emit('send', { message: text, username: name.value }); 
        field.value = ""; 
       } 
      }; 

      field.addEventListener("keyup", function(e){ 
       if(e.keyCode == 13) { 
        sendMessage(); 
       } 
     }); 
     } 

答えて

0

が、これはあなたのコードを使用して答えていないかもしれないが、あなたはdelivery moduleを使用して、簡単に作ることができ

index.jsは、

双方向ファイル転送Node.jsでは、Socket.IOを介して、co de on Github Link

関連する問題