Merhabalar. Aşağıda verdiğim kodları çalıştırdığımda aşağıdaki gibi bir konsol çıktısı alıyorum.
const express = require('express');
const app = express();
const path = require('path');
const mngs = require('mongoose');
const bodyparser = require('body-parser');
const { resolve } = require('dns');
const { rejects } = require('assert');
app.use('/public', express.static(path.join(__dirname, 'public'))); //express.static herkese açık klasörü belirler
app.use(bodyparser.urlencoded({extended:false})); // URL olarak gelen requestleri parçalayarak kullanımını kolaylaştırır
app.use(bodyparser.json({extended:false})); // JSON olarak gelen requestleri parçalayarak kullanımını kolaylaştırır
//mongo ile bağlantı kuruluyor "mongodb://127.0.0.1:27017" ifadesi standarttır. "/chatDB" ise oluşturduğumuz DB ismi
mngs.connect('mongodb://127.0.0.1:27017/chatDB',{ useNewUrlParser: true, useUnifiedTopology: true }, function(err,data){
if (err){
console.log('sunucu bağlantı hatası:'+err)
}else{
console.log('DB bağlandı...')}
});
//mongoose ile veri göndermek için önce veri tabanı şeması oluşturuyoruz, böylece giden veriler şema ile aynı yapıda DB'ye kaydolacak. "mesajlar" colection ismimizi gösterir
const Schema = mngs.Schema;
let DBsema = new Schema(
{
msgID:String,
mesaj:String,
tarih:{type:Date, default:Date.now}
},
{
collection:'mesajlar'
}
);
let ChatSema = mngs.model('ChatSema', DBsema);
//ana sayfa için index.html sayfasını gönderiyoruz
//Get metodu ile
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index2.html');
});
//Post ile gelen veriyi DB'ye yazma
app.post('/', function (req, res) {
res.sendFile(__dirname + '/index2.html');
console.log('post geldi');
var varmesaj= req.body.mesaj;
ChatSema.create({mesaj:varmesaj}, function(err,result){
if(err) throw err;
console.log('mesaj DBye yazıldı');
});
});
var mypromise = new Promise((resolve,rejects)=>{
let a=true;
if(a==true){
console.log('promise başladı');
resolve('ilk thene geçildi');
}
rejects('promise başlamadı');
});
setTimeout(() => {
mypromise.then((veriler)=>{
console.log('1-'+veriler);
ChatSema.find({},function(err,data){
if(err) throw err;
console.log('2-datanın saf hali:'+data);
var son_veri_no= data.length-1
var son_msgID= data[son_veri_no].msgID;
console.log('3-son mesajın IDsi:'+son_msgID);
return son_msgID;
});
}).then((son_msgID)=>{
console.log('4-ikinci then basladı');
console.log('5-msgID son hali:'+son_msgID);
})
}, 5000);
//sunucu çalışmaya başlar
app.listen(9999, function () {
console.log('Sunucu çalışıyor...');
});
konsol çıktısı:
promise başladı
Sunucu çalışıyor...
DB bağlandı...
1-ilk thene geçildi
4-ikinci then basladı
5-msgID son hali:undefined
2-datanın saf hali:{
_id: new ObjectId("6261b0eee921bc34f9de72d1"),
mesaj: 'denemede',
tarih: 2022-04-21T19:30:54.925Z,
__v: 0,
msgID: '1'
}
3-son mesajın IDsi:1
Benim anlamadığım: Promise yapısını 1,2,3,4,5 şeklinde sıra ile ilerlemesi için kurdum sorun nerede?