前提・実現したいこと
node.jsを学ぶ過程で更新してもログが残り続けるたり、途中で参加しても今までのログが残っているチャットを作りたいです。
発生している問題・エラーメッセージ
Mongoを使うということは、調べていて分かったのですがそれをどう組み込めが良いかがわかりません。 (mongoのインストールは出来ています。)
ソースコード
"use strict";
const http = require("http");
const express = require("express");
const socketIO = require("socket.io");
const moment = require("moment");
const m = moment();
console.log(m.format()); // => 2019-06-17T21:21:54+09:00
console.log(m.format("YYYY-MM-DD HH:mm:ss")); // => 2019-06-17 21:21:54
// オブジェクト
const app = express();
const server = http.Server(app);
const io = socketIO(server);
/** 定数 */
const PORT = process.env.PORT || 3000;
const SYSTEM_NICKNAME = "";
// グローバル変数
let iCountUser = 0; // ユーザー数
// 接続時の処理
io.on("connection", socket => {
console.log("connection");
let strNickname = ""; // コネクションごとで固有のニックネーム。イベントをまたいで使用される。 socket.on("disconnect", () => { console.log("disconnect"); if (strNickname) { // ユーザー数の更新 iCountUser--; // メッセージオブジェクトに現在時刻を追加 const strNow = moment().format("YYYY年M月D日"); // システムメッセージの作成 const objMsg = { strNickname: SYSTEM_NICKNAME, strMsg: strNickname + " さんが退室しました。" + " この部屋には現在 " + iCountUser + "人居ます。", strDate: strNow }; // 送信元含む全員に送信 io.emit("spread message", objMsg); }
});
// 入室時の処理
socket.on("join", strNickname_ => {
console.log("joined :", strNickname_);
strNickname = strNickname_; // ユーザー数の更新 iCountUser++; // メッセージオブジェクトに現在時刻を追加 const strNow = moment().format("YYYY年M月D日"); // システムメッセージの作成 const objMsg = { strNickname: SYSTEM_NICKNAME, strMsg: strNickname + " さんが入りました." , strDate: strNow }; io.emit("spread message", objMsg);
});
socket.on("new message", strMsg => {
console.log("new message", strMsg);
// 現在時刻の文字列の作成 const strNow = moment().format("YYYY年M月D日"); // メッセージオブジェクトの作成 const objMsg = { strNickname: strNickname, strMsg: strMsg, strDate: strNow }; io.emit("spread message", objMsg);
});
});
// 公開フォルダの指定
app.use(express.static(__dirname + "/public"));
// サーバーの起動
server.listen(PORT, () => {
console.log("server starts on port: %d", PORT);
});
nodejs
1
試したこと
mongo チャットなどで検索してみましたが、古い記事が多くバージョンが違うことが多かったです。
補足情報(FW/ツールのバージョンなど)
node.js v14.16.1
soketo v4.1.2
express v4.17.1
moment v2.29.1
あなたの回答
tips
プレビュー