我得到以下奇怪的行为随机发生,我无法重现,但我可以“修复”。
我有一个静态的webapp,我从我的快递api发送文件。 我不确定这是最好的做法,但这是我在路由器上做的事情:
router.get('/', function(req, res, next) {
var webAppDir = path.join(__dirname, '..', '..','webAppSimple');
//show user profile
if(req.isAuthenticated() || CONSTS.WEBAPP.DEBUG == 1) {
res.sendFile(webAppDir + '/index.html');
//res.json({});
}
//show signup
else {
res.redirect('/signup');
}
});
然后我收到以下错误:
'TypeError: opt.expires.toUTCString is not a function',
' at Object.serialize (/Users/andreymigalovich/Projects_localMac/print-that-sheet/server/node_modules/express/node_modules/cookie/index.js:135:56)',
' at ServerResponse.res.cookie (/Users/andreymigalovich/Projects_localMac/print-that-sheet/server/node_modules/express/lib/response.js:804:36)',
' at ServerResponse.res.writeHead (/Users/andreymigalovich/Projects_localMac/print-that-sheet/server/node_modules/express-session/index.js:168:11)',
' at ServerResponse._implicitHeader (_http_server.js:157:8)',
' at ServerResponse.OutgoingMessage.write (_http_outgoing.js:433:10)',
' at ReadStream.ondata (_stream_readable.js:529:20)',
' at emitOne (events.js:90:13)',
' at ReadStream.emit (events.js:182:7)',
' at readableAddChunk (_stream_readable.js:147:16)',
' at ReadStream.Readable.push (_stream_readable.js:111:10)',
' at onread (fs.js:1818:12)',
' at FSReqWrap.wrapper [as oncomplete] (fs.js:614:17)'
如果我更改了res.sendFile(webAppDir +'/ index.html');到res.json({}); 我没有收到错误,浏览器显示一个空页面(因为它应该......)
当我删除index.html页面上的整个内容时,问题是“修复”,刷新浏览器然后再次粘贴内容(不更改任何内容)并再次刷新浏览器。这样做可以在一段未知的时间内解决问题。
我正在使用nodejs v5.6.0: “express”:“~4.13.1”和“express-session”:“~1.0.0”
希望更好地了解正在发生的事情,甚至改变我发送静态文件的方式,以避免出现这个问题。