Javascript 无法读取属性'&书信电报;fieldname>';运行一段时间后返回null
我有一个angularjs网站,以NodeJS套接字方法作为客户端,以NodeJS应用程序作为服务器 数据通过套接字事件从服务器传递到客户端。问题是,在正常工作约5分钟后,从NodeJS服务器成功发送的间歇性数据在网站中被接收为“null”,从而导致以下错误:Javascript 无法读取属性'&书信电报;fieldname>';运行一段时间后返回null,javascript,angularjs,node.js,sockets,Javascript,Angularjs,Node.js,Sockets,我有一个angularjs网站,以NodeJS套接字方法作为客户端,以NodeJS应用程序作为服务器 数据通过套接字事件从服务器传递到客户端。问题是,在正常工作约5分钟后,从NodeJS服务器成功发送的间歇性数据在网站中被接收为“null”,从而导致以下错误: angular.js:11598 TypeError: Cannot read property '<fieldName>' of null at ecabsAngular.js:42 at angular.j
angular.js:11598 TypeError: Cannot read property '<fieldName>' of null
at ecabsAngular.js:42
at angular.js:12149
at angular.js:12137
at angular.js:12137
at Object.<anonymous> (angular.js:12837)
at l.$digest (angular.js:14222)
at l.$apply (angular.js:14493)
at Socket.<anonymous> (ecabsAngular.js:275)
at Socket.Emitter.emit (socket.io-1.2.0.js:1)
at Socket.onevent (socket.io-1.2.0.js:1)
angular.js:11598 TypeError:无法读取null的属性“”
在eCabAngular.js:42
在angular.js:12149
在angular.js:12137
在angular.js:12137
反对。(angular.js:12837)
l.$digest(angular.js:14222)
在l.$apply(angular.js:14493)
在插座上。(ecabsAngular.js:275)
位于Socket.Emitter.emit(Socket.io-1.2.0.js:1)
位于Socket.onevent(Socket.io-1.2.0.js:1)
你知道这是什么原因吗?如何解决
提前谢谢
编辑:
这是在客户端(网站上)崩溃的代码
(函数(){
var app=angular.module('module',[]);
app.controller('MainCtrl',['$scope','$window',函数($scope,$window){
$scope.bookings=[];
socket.on('updateBooking',函数(预订){
$scope.loadAllocations();
对于(var i=0;iShare您的代码在崩溃的地方。这是由于浏览器控制台中出现错误而遇到的。一旦错误得到处理,一切都会继续正常工作。在崩溃的地方共享您的代码。这是由于浏览器控制台中出现错误而遇到的。一旦错误被消除一切正常。
(function(){
var app = angular.module('Module', []);
app.controller('MainCtrl', ['$scope', '$window', function($scope, $window){
$scope.bookings = [];
socket.on('updateBooking', function(booking){
$scope.loadAllocations();
for (var i=0; i<$scope.bookings.length; i++) {
if ($scope.bookings[i].CRMBookingID == booking.CRMBookingID) {
$scope.$apply(function(){
$scope.bookings[i] = booking;
});
}
}
});
}
]);
})();
var app = require('express')();
var http = require('http');
http.globalAgent.maxSockets = 200;
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var sql = require('mssql');
server.listen(3000);
app.post('/updatebooking', function(request, response) // receive web service request
{
response.writeHeader(200, {"Content-Type": "text/plain"}); // build response header
response.end(); // end the response
request.on('data', function(changes)
{
try{
var c = JSON.parse(changes.toString()); // parse data received
var connection = new sql.Connection(config); // create DB connection
connection.connect(function (err) // connect to the database
{
if (err!=null) { logger.error('Update booking connection error: ' + c + ' ' + err); }
var request = new sql.Request(connection); // create SQL request
request.stream = true;
try{
var sqlquery = <sqlquery>; // build SQL query
logger.trace("Executing SP in DB: " + sqlquery);
request.query(sqlquery); // execute SP
request.on('row', function (row) // once committed send to the client (website)
{
logger.trace("Updated booking with Reference ID " + row.Ref + " " + sqlquery);
io.emit('updateBooking', row); // sending data
})
request.on('error', function(err) {
logger.error('Update booking SP request error: ' + sqlquery + err);
});
}catch( e){
logger.error('Update booking request error' + sqlquery + ' ' + e);
}
});
} catch(e)
{
var c = JSON.parse(changes.toString());
logger.error('Update booking error for: ' + c + ' ' +e);
}
connection.on('error', function(err) {
logger.error('Update error connection: ' + err);
});
});
});