首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js在几个请求后冻结

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

Stack Overflow用户
提问于 2016-03-04 17:19:53
回答 1查看 2.2K关注 0票数 0

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

但是我的应用程序在几个请求之后拒绝工作。这需要一段时间,一段时间后,它又开始工作了。

下面是nodejs-server的代码,我希望这个问题出现在这里。

代码语言:javascript
复制
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);

该应用程序用于监控完整The堆栈中的错误。

EN

回答 1

Stack Overflow用户

发布于 2016-03-04 17:31:07

POST /api/error的处理程序没有发回响应,因此客户端将继续等待。在某些情况下,它可能决定不再打开到服务器的任何连接,直到前面的连接得到应答(或已超时)。

你可以只发回一个200响应:

代码语言:javascript
复制
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);
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35792161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档