私のサーバーは動作していますが、時間がたつと応答が停止し、ページをロードしようとすると接続が確立できません。Nodejsが応答時間を指定して応答を返す
マイapp.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var oracledb = require('oracledb');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var multer = require('multer');
var fileUpload = require('express-fileupload');
var sessionStore;
var app = express();
var oracleDbStore = require('express-oracle-session')(session);
var connect = require(path.join(__dirname, 'connection', 'conn'))(2);
oracledb.createPool(connect, function(err, pool) {
if (err) {
console.error("createPool() error: " + err.message);
return;
}
pool.getConnection(function(err, connection) {
if (err) {
handleError(response, "getConnection() error", err);
return;
}
var diffopt = {externalAuth: true,
checkExpirationInterval: 900000,
expiration: 86400000,
createDatabaseTable: true,
connectionLimit: 1,
schema: {
tableName: 'sessions',
columnNames: {
session_id: 'session_id',
expires: 'expires',
data: 'data'
}
}};
var options = Object.assign({},connect,diffopt);
sessionStore = new oracleDbStore(options, connection);
});
});
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'twig');
// uncomment after placing your favicon in /public
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(fileUpload());
app.use(cookieParser());
app.use('/files',express.static(path.join(__dirname, 'public')));
app.use('/archivos',express.static(path.join(__dirname, 'archivos')));
app.set('trust proxy', 1);
app.use(session({
secret: "work",
name: 'sessionId',
store:sessionStore,
resave: false,
saveUninitialized: false
}));
var links = require('./links');
for(var i=0;i<links.length;i++){
app.use(links[i].route, require(links[i].direction));
}
app.get('*',function(req,res){
res.redirect('/');
});
app.get('/', function(req, res){
res.sendFile(path.join(__dirname, 'views/index.twig'));
});
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
応答を停止したが、まだ要求を取得し、サーバのログ。ビューまたは静的ファイルのいずれもロードできません。
GET /files/stylesheets/jquery-ui.css - - ms - -
GET /files/jscript/jquery.min.js - - ms - -
GET /files/stylesheets/font-awesome.min.css - - ms - -
GET /files/stylesheets/style.css - - ms - -
GET /files/stylesheets/AdminLTE.css - - ms - -
GET /files/stylesheets/bootstrap.min.css - - ms - -
GET/304 2.676 ms - -
GET /files/stylesheets/AdminLTE.css - - ms - -
GET /files/stylesheets/style.css - - ms - -
GET /files/stylesheets/font-awesome.min.css - - ms - -
GET /files/stylesheets/bootstrap.min.css - - ms - -
GET /files/stylesheets/jquery-ui.css - - ms - -
GET/304 2.759 ms - -
GET /files/stylesheets/jquery-ui.css - - ms - -
GET /files/jscript/jquery.min.js - - ms - -
GET /files/stylesheets/bootstrap.min.css - - ms - -
GET /files/stylesheets/font-awesome.min.css - - ms - -
GET /files/stylesheets/AdminLTE.css - - ms - -
GET /files/stylesheets/style.css - - ms - -
GET /login 200 1.157 ms - 1417
GET /files/imagenes/up.jpeg - - ms - -
GET /files/stylesheets/bootstrap.min.css - - ms - -
GET /files/stylesheets/bootstrap.min.css - - ms - -
POST /login - - ms - -
最後に、サーバーを再起動してもう一度動作させる必要があります。
私の疑惑は、接続を確立できないため、プロセスが終了していることです。リソースが不足している場合を除き、これはおそらく未処理の例外が原因です。私の提案は、それを使って遊んで、それを壊す方法を見つけ出すことです。そして、エラーのポイントを回避してデバッグできるように、エラーのポイントを増やしてください。 – Mic
と同じ提案を試してみてください。試してみてください。 –
私はあなたが何らかのデータベースリソースを解放していないと思って、最終的にリソースが足りなくなると思います。 – jfriend00