app.jsは実行できているが、ブラウザで接続が切断されてしまう。
解決したいこと
node.js+express+ejsを利用してwebサイトを作っています。
centos9上でapp.jsを実行してもコンソールでapp.jsファイルの実行は確認(index.jsがコンソール上で実行、表示される)できますが、
ブラウザ上で「接続がリセットされました。」と表示されます。
別PCやスマートフォンなどで接続を試しましたが、同じでした。
port開放は確認済みです。
また、local環境では問題なしに実行、読み込みできています。
解決方法を教えてください。
発生している問題・エラー
ブラウザ上では ERR_CONNECTION_RESET
コンソール上でエラーコードがでません。
該当するソースコード
app.js
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'public')));
const mp = require('./public/javascripts/index');
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
app.get('/', (req, res) => {
console.log(mp);
res.render('index', { mp: mp });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
index.ejs
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>challenge</title>
<link rel="stylesheet" href="/stylesheets/style.css">
</head>
<body>
<div class="main-contents">
<div class="text">
<p>Hello World!</p>
</div>
<div class="push-button">
<input type="button" value="push">
</div>
<div class="ejs-test">
<ul>
<% mp.forEach((multi) =>{ %>
<li><%= multi %></li>
<% });%>
</ul>
</div>
</div>
</body>
</html>
index.js
let mp = [];
for (let i = 1; i < 10; i++) {
let line = ""; // ここで行ごとの文字列を初期化
for (let y = 1; y < 10; y++) {
let math = (i * y);
line += `${math},`; // 数字をカンマ区切りで連結
}
mp.push(line); // 各行を multiplication 配列に追加
}
console.log(mp);
module.exports = mp; // ここでmpを直接エクスポート
package.json
{
"name": "AppName",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"ejs": "^3.1.10",
"express": "^4.21.1",
"http-errors": "~1.6.3"
}
}
node.jsのバージョンは v16.20.2
centos9です。
初質問なので至らない点などあると思います。
もし何か必要な情報等ありましたら教えていただけると助かります。
自分で試したこと
同じサーバー上でapacheを利用し、別htmlファイルをport80で開くことは確認しました
0