NodeJs Makale Ekleme (MongoDb veri ekleme)
article modelim :
Buradaki Schema alanlarını dolurmamız gerekiyor. _user prop 'u makaleyi kimin eklediğini bulabilmek için. MongoDb deki members schemada ki id alaraka işlem yapıyor.
articleRoutes dosyamda işlemleri yapacağım.
Mongose ve modelimde işlem yapacağım için öncelikle onları çağırıyorum.
article ekleyebilmem için bazı kurallarım vardı bunları çağırıyorum.
admin olmak ve giriş yapmış olmak gerekli.
post işlemi yapacağım :
routerım şu şekilde ve middlewareslerimi kullanıyorum. Aynı zamanda requestimin bodysinden gelecek olan articleSchamam daki propetiesleri bodyden aldım.
Routerim şuanlık bitmiş hali;
Şuan postman ile deneyebiliriz.
Postman ile denerken
POST seçilir ardından kullandığınız localhost portu ver router benim ki : localhost:5500/articles/new
Ardından Body kısmına ben
{
"title":"deneme2",
"subject":"deneme2",
"body":"deneme2",
"metaTag":"deneme2"
}
yazdım Login olmakla uğraşmamak için falan. Yukarıda bir hata yaptık aşağıda onun çözülmüş hali bulunuyor:
Middlewaresleri kaldırdım postman kulanacağım için.
Mongo Modelime veri eklemiş olduk. Sırada Front-end tarafına geçmek var
const mongoose = require('mongoose');
const { Schema } = mongoose;
const articleSchema = new Schema({
title: String,
subject: String,
body: String,
metaTag: String,
dateSent: Date,
_user: {type: Schema.Types.ObjectId, ref: 'members'}
})
mongoose.model('articles', articleSchema);
Buradaki Schema alanlarını dolurmamız gerekiyor. _user prop 'u makaleyi kimin eklediğini bulabilmek için. MongoDb deki members schemada ki id alaraka işlem yapıyor.
articleRoutes dosyamda işlemleri yapacağım.
const mongoose = require('mongoose');
const article = require('../models/article');
article ekleyebilmem için bazı kurallarım vardı bunları çağırıyorum.
const requireLogin = require('../middlewares/requireLogin');
const requireAdmin = require('../middlewares/requireAdmin');
post işlemi yapacağım :
app.post('/articles/new', requireLogin, requireAdmin, async(req, res) => {
const { title, subject, body, metaTag, dateSent } = req.body;
})
Routerim şuanlık bitmiş hali;
const mongoose = require('mongoose');
const Article = require('../models/article');
//Midlewares
const requireLogin = require('../middlewares/requireLogin');
const requireAdmin = require('../middlewares/requireAdmin');
module.exports = (app) => {
app.post('/articles/new', requireLogin, requireAdmin, async(req, res) => {
const { title, subject, body, metaTag, dateSent } = req.body;
const article = new Article({
title,
subject,
body,
metaTag,
dateSent,
_user: req.user.id
})
try{
await article.save();
}
catch (err) {
res.status(422).send(err);
}
})
}
Postman ile denerken
POST seçilir ardından kullandığınız localhost portu ver router benim ki : localhost:5500/articles/new
Ardından Body kısmına ben
{
"title":"deneme2",
"subject":"deneme2",
"body":"deneme2",
"metaTag":"deneme2"
}
yazdım Login olmakla uğraşmamak için falan. Yukarıda bir hata yaptık aşağıda onun çözülmüş hali bulunuyor:
const mongoose = require('mongoose');
const Article = mongoose.model('articles');
//Midlewares
const requireLogin = require('../middlewares/requireLogin');
const requireAdmin = require('../middlewares/requireAdmin');
// requireLogin, requireAdmin,
module.exports = app => {
app.post('/articles/new', async(req, res) => {
const { title, subject, body, metaTag, } = req.body;
console.log("Save transtactions is begin");
const article = new Article({
title,
subject,
body,
metaTag,
dateSent: Date.now()
// _user: req.user.id
})
try{
await article.save();
console.log("Save transtactions is successfull");
}
catch (err) {
res.status(422).send(err);
console.log("is not successfull");
}
})
}
Middlewaresleri kaldırdım postman kulanacağım için.
Mongo Modelime veri eklemiş olduk. Sırada Front-end tarafına geçmek var
Yorumlar
Yorum Gönder