Also ich einen Rückruf-Funktion in einem Modul wie folgt exportieren:Socket.io-emit in Rückruf gibt Syntaxerror: Unerwartetes Ende des JSON Eingang
(function() {
let request = require("request");
module.exports = function GithubApi(url, callback) {
let options = {
uri: url,
headers: {
"User-Agent": "Me",
"Content-Type": "application/x-www-form-urlencoded"
}
};
request(options, function(err, body) {
let context = {
issues: JSON.parse(body.body).map(function(issue) {
return {
title: issue.title,
comments: issue.comments,
};
})
};
callback(context) // The callback
});
};
}());
Und das Callback funktioniert völlig in Ordnung, wenn ich indem es in meiner GET-Anfrage mit Express.js:
app.get("/", (req, res) => {
let url = "some url";
GithubApi(url, (data) => {
res.render("../some-views", data);
});
});
Aber wenn ich einen Socket-emit, die Callback-Funktion gibt SyntaxError: Unexpected end of JSON input
app.get("/", (req, res) => {
let url = "some url";
GithubApi(url, (data) => {
io.socket.emit("update", {message: data}); // adding this
res.render("../some-views", data);
});
});
hinzufügen
Kann nicht verstehen, warum der Socket die Anfrage stören und einen Fehler mit JSON zurückgeben würde. Kann jemand helfen?
Ihre JSON überprüfen, es ist schlecht. – Darkrum