Katman ve uygulama nedir.aslında Expressjs anlamına kullanılır?
Hemen hemen her Express uygulaması katman için app.use
bir deyim vardır anlıyorum ama katman aslında ne olduğunu ve app.use
deyimi ne yaptığını net, kısa ve öz bir açıklama bulamadım. Hatta bu ifade biraz bu konuda muğlak kendilerini dokümanlar. Bana lütfen bu kavramları açıklayabilir misiniz?
CEVAP
Yeni bir proje içinde katman kavramı ayırma yarısına geldim.
Katman bir akışı gerekir eylemlerin yığın tanımlamak sağlar. Express sunucular kendilerini katman yığını.
// express
var app = express.createServer();
// middleware
var stack = middleware();
Sonra .use
çağırarak katman yığın katmanları ekleyebilirsiniz
// express
app.use(express.static(..));
// middleware
stack.use(function(data, next) {
next();
});
Katman yığınının içinde bir katman n parametreleri (2, req
& res
express için) ve next
bir işlevi alan bir fonksiyon.
Katman katman bazı hesaplamalar yapmak, parametreleri artırmak ve next
çağrı bekliyor.
Yığın üstesinden sürece hiçbir şey yapmaz. Express gelen bir HTTP isteği sunucuda yakalandı yığını her zaman ele verecektir. Katman ile el ile yığın işlemek.
// express, you need to do nothing
// middleware
stack.handle(someData);
Daha kapsamlı bir örnek :
var middleware = require("../src/middleware.js");
var stack = middleware(function(data, next) {
data.foo = data.data*2;
next();
}, function(data, next) {
setTimeout(function() {
data.async = true;
next();
}, 100)
}, function(data) {
console.log(data);
});
stack.handle({
"data": 42
})
Express sadece express her gelen HTTP için işlemesi gereken işlemleri bir yığın isteği tanımlamak şart.
İfade açısından (daha sonra yerine takın) genel katman ve rota belirli bir katman var. Bu her gelen HTTP istekleri için yığın veya belli bir rota ile etkileşimde HTTP istekleri için ekleyin sadece bir katman ekleyebilirsiniz anlamına gelir.
Express & katman örnekleri gelişmiş :
// middleware
var stack = middleware(function(req, res, next) {
users.getAll(function(err, users) {
if (err) next(err);
req.users = users;
next();
});
}, function(req, res, next) {
posts.getAll(function(err, posts) {
if (err) next(err);
req.posts = posts;
next();
})
}, function(req, res, next) {
req.posts.forEach(function(post) {
post.user = req.users[post.userId];
});
res.render("blog/posts", {
"posts": req.posts
});
});
var app = express.createServer();
app.get("/posts", function(req, res) {
stack.handle(req, res);
});
// express
var app = express.createServer();
app.get("/posts", [
function(req, res, next) {
users.getAll(function(err, users) {
if (err) next(err);
req.users = users;
next();
});
}, function(req, res, next) {
posts.getAll(function(err, posts) {
if (err) next(err);
req.posts = posts;
next();
})
}, function(req, res, next) {
req.posts.forEach(function(post) {
post.user = req.users[post.userId];
});
res.render("blog/posts", {
"posts": req.posts
});
}
], function(req, res) {
stack.handle(req, res);
});
Düğüm nedir.' Bağlantı js, Expres...
Geçişlerini için Dinlenmek nedir ve na...
Tek örnek bir uygulama oluşturmak için...
Python bir uygulama için en iyi proje ...
Bir uygulama yapısı Nasıl ExpressJS?...