首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开机自检时NodeSSPI 2分钟超时

开机自检时NodeSSPI 2分钟超时
EN

Stack Overflow用户
提问于 2018-09-14 23:56:26
回答 1查看 145关注 0票数 1

当我向我的服务器发送一个请求时,我没有问题,但是当我POST时,我遇到了服务器超时。(默认情况下是2分钟,但如果我添加server.setTimeout(15000),我会得到15秒的延迟。)一旦服务器超时,进程就会按预期完成。有趣的是,如果我在res.finished || next()之前添加一个console.log(res),延迟就会消失。

post.html:

代码语言:javascript
复制
<form action="http://localhost:3000" method="post">
    <input type="text" name="user[name]">
    <input type="text" name="user[email]">
    <input type="submit" value="Submit">
</form>

test.js:

代码语言:javascript
复制
'use strict'

var express = require('express')
var app = express()
var server = require('http').createServer(app)
//server.setTimeout(15000);
const bodyParser = require("body-parser");

app.use(function (req, res, next) {
  var nodeSSPI = require('node-sspi')
  var nodeSSPIObj = new nodeSSPI({
    retrieveGroups: true
  })
  nodeSSPIObj.authenticate(req, res, function(err){
    //console.log(res);
    res.finished || next()
  })
})
app.use(bodyParser.urlencoded({
            extended: true
}));

app.use(bodyParser.json());

app.post("/", function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write("<html>");
  res.write("<body>");
  res.write("<h1>My Header</h1>");
  res.write("<p>My paragraph.</p>");
  res.write("<p>Name = " + req.body.user.name + "</p>");
  res.write("<p>Email = " + req.body.user.email + "</p>");
  res.write("</body>");
  res.write("</html>");
  res.end();
  console.log('End post');
});

// Start server
var port = process.env.PORT || 3000
server.listen(port, function () {
  console.log('Express server listening on port %d in %s mode', port, app.get('env'))
})
EN

回答 1

Stack Overflow用户

发布于 2018-09-21 01:06:27

事实证明,当我重新排序路由以将bodyParser行置于nodeSSPI检查之上时,问题就解决了。

具体来说,我移动了以下几行:

代码语言:javascript
复制
app.use(bodyParser.urlencoded({
            extended: true
}));

app.use(bodyParser.json());

上图:

代码语言:javascript
复制
app.use(function (req, res, next) {
  var nodeSSPI = require('node-sspi');
  var nodeSSPIObj = new nodeSSPI({
    retrieveGroups: false
  });

  nodeSSPIObj.authenticate(req, res, function(err){
    res.finished || next();
  });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52335477

复制
相关文章

相似问题

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