我有一個由Node構建的跟蹤應用程序,該應用程序由我們網絡中的其他站點訪問。他們將訪問應用程序的直通HTML文件的頭,像這樣:NodeJS應用程序僅返回Socket.io歡迎信息
<title>Test</title>
<meta name="generator" content="TextMate http://macromates.com/">
<script src="http://mynetwork.com:1337/tracker.js?pid=publisher1&ps=home"></script>
</head>
<body>
的tracker.js文件使用socket.io連接到存儲在MongoDB的一些數據app.js。出於某種原因,當啓動socket.io然後加載引用該Tracker.js腳本的頁面時,我在第1行收到錯誤「未捕獲的SyntaxError:意外的標識符」,它實際上是「Welcome to socket.io。」消息,而不是javascript多數民衆贊成在文件中
這裏是Tracker.js樣子:
(function(document, onload){
var io = document.createElement('script');
io.src = "//cdn.socket.io/stable/socket.io.js";
io.setAttribute('async', 'true');
if (typeof onload === 'function') {
io.onloadDone = false;
io.onload = function() {
io.onloadDone = true;
onload();
};
io.onreadystatechange = function() {
if ("loaded" === io.readyState && !io.onloadDone) {
io.onloadDone = true;
io.onload();
}
};
}
(document.getElementsByTagName('head') || document.getElementsByTagName('body'))[0].appendChild(io);
});
(document, function(){
var socket = io.connect('http://mynetwork.com:1337');
socket.emit('adTracker',
{ adServer: 'datalunk', adZone : 'top_home', referingURL : 'site.com' }
);
socket.on('entrance', function(){
console.log('Response is:' + data.message);
});
});
的app.js文件看起來像這樣:
var io = require('socket.io');
var tracker = io.listen(1337);
tracker.configure(function() {
tracker.set('authorization', function (handshakeData, callback) {
if (handshakeData.xdomain) {
callback('Cross-domain connections are not allowed');
} else {
callback(null, true);
}
});
});
tracker.sockets.on('connection', function (socket) {
socket.on('entrance', {message: 'connection has been made to app.js'});
socket.on('adTracker', function (data) {
var adRequestData = data;
var pass = ["bigbooks"];
var databaseUrl = "user:[email protected]:10006/node-test";
var collections = ["mads"]
var db = require("mongojs").connect(databaseUrl, collections);
db.cmnads.insert({adRequest : adRequestData}, {$set: {password: pass}}, function(err, updated) {
if(err || !updated) console.log("User not updated");
else console.log("User updated");
});
});
});
誰能告訴我爲什麼我會得到第1行的socket.io歡迎信息&錯誤,我該如何解決它?
我修改了匿名函數,從Welcome返回Socket.IO消息。還有其他建議嗎? – HjalmarCarlson
究竟在哪裏給錯誤?這行和哪個文件? –
錯誤位於第1行。 從發佈商/第三方網站上的HTML文件調用tracker.js腳本時出現。 – HjalmarCarlson