【问题标题】:TypeError: undefined is not a function while logOn to steamTypeError: undefined is not a function while logOn to steam
【发布时间】:2018-09-04 12:48:52
【问题描述】:

我正在开发 Steam 项目。为此,我正在使用 node-steam 模块。我被困在登录部分。 我在尝试使用 node-steam 登录 Steam 帐户时遇到此异常 异常如下:

Uncaught TypeError: undefined is not a function   MYAPP/node_modules/adm-zip/zipFile.js:8 
Module.exports  /MYAPP/node_modules/adm-zip/zipFile.js:8 
module.exports /MYAPP/node_modules/adm-zip/adm-zip.js:25
handlers.(anonymous function) /MYAPP/node_modules/steam/lib/steam_client.js:252 
SteamClient._netMsg`enter code here`Received /MYAPP/node_modules/steam/lib/steam_client.js:157
emitOne events.js:75
emit events.js:150
Connection._readPacket /MYAPP/node_modules/steam/lib/connection.js:50
emitNone events.js:65
EMIT events.js:147
emitReadable__  _stream_readable.js:408  
emitReadable   _stream_readable.js:402
readableAddChunk _stream_readable.js:157
Readable.push _stream_readable.js:109
onread net.js:510
Error: Disconnected
at SteamClient._disconnected (/MYAPP/node_modules/steam/lib/steam_client.js:186:24)
at emitOne (events.js:75:13)
at Connection.emit (events.js:150:7)
at TCP.close (net.js:457:12)

我的源代码添加如下:

var fs = require('fs');
var Steam = require('steam');
var crypto = require('crypto');

var serverlist = [] //server list here
Steam.servers = serverlist;

var steamClient = new Steam.SteamClient();
var steamUser = new Steam.SteamUser(steamClient);

steamClient.connect();

steamUser.on('updateMachineAuth', function (sentry, callback) {
    console.log('writing to file sentry');
    fs.writeFileSync('sentry', sentry.bytes);
    callback({ sha_file: getSHA1(sentry.bytes) });
});

function getSHA1(bytes) {
    var shasum = crypto.createHash('sha1');
    shasum.end(bytes);
    return shasum.read();
}

steamClient.on('connected', function () {    
    steamUser.logOn({
        account_name: “XXXXXXXX”,
        password: “XXXXXXXX”,
        // un-comment this when providing secondary auth-code from email
        auth_code: ‘XXX’,
        sha_sentryfile: getSHA1(fs.readFileSync('sentry'))
    });
});

steamUser.on('loggedOn', function () {
    console.log('Logged in!');
});


steamClient.on('debug', function (response) {
    console.log("debug: " + response);
});

steamClient.on('logOnResponse', function (response) {
    console.log(">>logOnResponse");
    console.log(response);

if (response.eresult == Steam.EResult.OK) {
    console.log('Logged in!');
    // Your code here
}

});

steamClient.on('error', function (error) {
    console.log(error.stack);
    alert("yes error");
});

steamClient.on('servers', function (servers) {
    alert(servers);
    // fs.writeFile('servers', JSON.stringify(servers));
});

steamClient.on('disconnected', function (s) {
    alert(s);
});

以下是我安装的版本。

节点版本:v10.8.0 NPM 版本:6.4.1 Steam 版本:1.4.0 操作系统:Mac

请帮我解决这个问题。

【问题讨论】:

  • 请您验证我的回答好吗?

标签: javascript node.js node-modules steam


【解决方案1】:

正在发生的错误,undefined is not a function 正在发生,因为您在 node 中调用函数 alert

这是无效的,因为在 node 中没有这样调用的函数,并且由于您在 errorHandler 中也有该函数,因此应用程序死了。

如果您要删除函数alert,如果您创建了“警告”函数,该函数将console.log() 发生的事情应该会消失。

尝试将此函数添加到您的代码中或删除所有警报函数:

const alert = () => {
  console.log(arguments)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2014-08-15
    • 2015-01-14
    • 2014-07-06
    • 2014-09-01
    相关资源
    最近更新 更多