我是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);
}
});
});
答案 0 :(得分:1)
对于您来说,包含有关代码的更多信息以及您要执行的操作肯定会更有帮助。尽管我可以做出一些假设,但本着帮助的精神。
看起来你正在使用socket.io。看起来您正在使用emit
功能。可能类似于socket.emit(thing)
或io.emit(thing)
。我的猜测是thing
不是字符串。您可以查看它,或JSON.stringify()
查看它!