Nodejs处理错误

时间:2017-05-15 05:34:14

标签: javascript node.js socket.io

我是NodeJS的新手,我总是遇到同样的错误:

  

/var/www/html/helpdesk/node_modules/ent/encode.js:8           抛出新的TypeError('Expected a String');           ^

     

TypeError:期望一个字符串       at Object.encode(/var/www/html/helpdesk/node_modules/ent/encode.js:8:15)       在Socket。 (/var/www/html/helpdesk/apps.js:32:22)       在emitOne(events.js:96:13)       在Socket.emit(events.js:191:7)       at /var/www/html/helpdesk/node_modules/socket.io/lib/socket.js:503:12       at _combinedTickCallback(internal / process / next_tick.js:73:7)       at process._tickCallback(internal / process / next_tick.js:104:9)/var/www/html/helpdesk/node_modules/ent/encode.js:8           抛出新的TypeError('Expected a String');           ^

如何处理?

var express = require('express');
var app = express();
var server = app.listen(3000);
var io = require('socket.io')(server);
var ent = require('ent'); 
var fs = require('fs');


io.on('connection', function(socket){

        socket.emit('message', { content: 'Vous êtes bien connecté ! ', importance: '1' });


        socket.on('message', function (message) {
            /*console.log('Un client me parle ! Il me dit : ' + message);
             console.log(socket.pseudo + ' me parle ! Il me dit : ' + message);
             io.sockets.emit('message', { content: 'Vous êtes bien connecté ! '+
             socket.pseudo, importance: '1' });*/

            message = ent.encode(message);
            io.sockets.emit('message', {pseudo: socket.pseudo, message: message});
        });

        socket.on('pseudo', function(pseudo) {
            pseudo = ent.encode(pseudo);
            socket.pseudo = pseudo;
        });

        socket.on('nouveau_client', function(pseudo) {
            if(pseudo.length >= 1 && typeof pseudo=="string"){
                pseudo = ent.encode(pseudo);
                socket.pseudo = pseudo;
                io.sockets.emit('nouveau_client', pseudo);
            }

        });



});

1 个答案:

答案 0 :(得分:1)

对于您来说,包含有关代码的更多信息以及您要执行的操作肯定会更有帮助。尽管我可以做出一些假设,但本着帮助的精神。

看起来你正在使用socket.io。看起来您正在使用emit功能。可能类似于socket.emit(thing)io.emit(thing)。我的猜测是thing不是字符串。您可以查看它,或JSON.stringify()查看它!