Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性'&书信电报;fieldname>';运行一段时间后返回null_Javascript_Angularjs_Node.js_Sockets - Fatal编程技术网

Javascript 无法读取属性'&书信电报;fieldname>';运行一段时间后返回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

我有一个angularjs网站,以NodeJS套接字方法作为客户端,以NodeJS应用程序作为服务器

数据通过套接字事件从服务器传递到客户端。问题是,在正常工作约5分钟后,从NodeJS服务器成功发送的间歇性数据在网站中被接收为“null”,从而导致以下错误:

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);
        });
    });
});