【问题标题】:Nodejs handle errorNodejs处理错误
【发布时间】:2017-10-13 19:18:52
【问题描述】:

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

/var/www/html/helpdesk/node_modules/ent/encode.js:8 throw new TypeError('Expected a String'); ^

TypeError:应为字符串 在 Object.encode (/var/www/html/helpdesk/node_modules/ent/encode.js:8:15) 在套接字。 (/var/www/html/helpdesk/apps.js:32:22) 在 emitOne (events.js:96:13) 在 Socket.emit (events.js:191:7) 在 /var/www/html/helpdesk/node_modules/socket.io/lib/socket.js:503:12 在 _combinedTickCallback (内部/进程/next_tick.js:73:7) 在 process._tickCallback (internal/process/next_tick.js:104:9) /var/www/html/helpdesk/node_modules/ent/encode.js:8 throw new 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);
            }

        });



});

【问题讨论】:

  • 传递一个字符串?放在这里你想做什么
  • 您需要显示您的触发此异常的代码。
  • 错误可能来自这一行 message = ent.encode(message); ` var ent = require('ent'); var fs = 需要('fs'); ...... socket.on('message', function (message) { message = ent.encode(message); io.sockets.emit('message', {伪:socket.pseudo,消息:消息});}); .....

标签: javascript node.js socket.io


【解决方案1】:

包含有关您的代码和您正在尝试做什么的更多信息肯定会对您更有帮助。尽管我可以做出一些假设,但本着帮助的精神。

看起来您正在使用 socket.io。看起来您正在使用emit 函数。也许像socket.emit(thing)io.emit(thing) 这样的东西。我的猜测是 thing 不是字符串。你可以查看或JSON.stringify()查看!

【讨论】:

  • 错误可能来自这一行 message = ent.encode(message); ` var ent = require('ent'); var fs = 需要('fs'); ...... socket.on('message', function (message) { message = ent.encode(message); io.sockets.emit('message', {伪:socket.pseudo,消息:消息});}); .....
猜你喜欢
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-20
相关资源
最近更新 更多