Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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 Node.js在几个请求后冻结_Javascript_Angularjs_Node.js_Socket.io - Fatal编程技术网

Javascript Node.js在几个请求后冻结

Javascript Node.js在几个请求后冻结,javascript,angularjs,node.js,socket.io,Javascript,Angularjs,Node.js,Socket.io,我正在尝试使用nodejs和socket.io 但我的申请在几次请求后就被拒绝了。这需要一段时间,一段时间后,它又开始工作 下面是nodejs服务器的代码,我认为这是问题所在 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.D

我正在尝试使用nodejs和socket.io

但我的申请在几次请求后就被拒绝了。这需要一段时间,一段时间后,它又开始工作

下面是nodejs服务器的代码,我认为这是问题所在

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('db.sqlite');
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io')(server);
var port = process.env.PORT || 8080;

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var router = express.Router();

router.post('/', function (req, res) {
    res.sendFile(__dirname + "/app/index.html");
});
router.get('/sample', function (req, res) {
    res.sendFile(__dirname + "/app/sample.html");
});
router.post('/api/error', function (req, res) {
    var data = req.body;
    data.date = Date();
    io.emit('error', JSON.stringify(data));
    res.header("Access-Control-Allow-Origin", "*");
});

io.on('connection', function(socket){
  console.log('a client connected');
});

app.use('', router);
app.use(express.static('app'));
app.use('/static', express.static('node_modules'));

// START THE SERVER
server.listen(port);
console.log('Magic happens on port ' + port);

该应用程序用于监视完整webstack中的错误。

POST/api/error的处理程序未发送回响应,因此客户端将继续等待。在某个时刻,它可能会决定在之前的连接被应答(或超时)之前不再打开与服务器的任何连接

您只需返回200响应:

router.post('/api/error', function (req, res) {
    var data = req.body;
    data.date = Date();
    io.emit('error', JSON.stringify(data));
    res.header("Access-Control-Allow-Origin", "*").sendStatus(200);
});

POST/api/error
的处理程序没有返回响应,因此客户端将继续等待。在某个时刻,它可能会决定在之前的连接被应答(或超时)之前不再打开与服务器的任何连接

您只需返回200响应:

router.post('/api/error', function (req, res) {
    var data = req.body;
    data.date = Date();
    io.emit('error', JSON.stringify(data));
    res.header("Access-Control-Allow-Origin", "*").sendStatus(200);
});

任何与您的问题相关的代码都必须在您的问题中,而不仅仅是链接。链接会腐烂,使问题及其答案在将来对人们毫无用处,人们不应该跟随一些随机链接来帮助你。如果这个问题没有意义,没有链接就无法回答,那么这个网站就不适合。相反,把问题放进去。
POST/api/error
的处理程序并没有结束请求(通过返回响应)。@robertklep。这就是错误:)你很棒。任何与你的问题相关的代码都必须在你的问题中,而不仅仅是链接。链接会腐烂,使问题及其答案在将来对人们毫无用处,人们不应该跟随一些随机链接来帮助你。如果这个问题没有意义,没有链接就无法回答,那么这个网站就不适合。相反,把问题放进去。
POST/api/error
的处理程序并没有结束请求(通过返回响应)。@robertklep。这就是错误:)你很棒。