bu konu göre Bağlan ve Ekspres utils
node.js
dünyasında yeniyim: What is Node.js' Connect, Express and “middleware”?Ben Connect ben kodunda biraz kazdık Express
parçası olduğunu öğrendik,
./myProject/node_modules/express/lib/utils.js
ve daha iyi:
ve ben iki çok ilginç dosyalar bulunduBu iki dosya yararlı işlevlerle doludur ve bunları doğru şekilde nasıl çağırmak istediğimi merak ediyordum.
var express = require('express')
, resource = require('express-resource')
, mongoose = require('mongoose')
, expresstUtils =
require('./node_modules/express/lib/utils.js');
, connectUtils =
require('./node_modules/express/node_modules/connect/lib/utils.js');
Ama ya benim diğerleri dosyalar hakkında biraz hantal ve bulundu:
Bildiğim kadarıyla, ./myProject/app.js
yılında, yapmak ne?
mesela, işte benim yollarından biridir:
myResources = app.resource(
'myresources',
require('./routes/myresources.js'));
ve burada myresources.js
içeriği şöyledir:
exports.index = function(req, res)
{
res.render('./myresources.jade', { title: 'My Resources' });
};
exports.show = function(req, res)
{
fonction resourceIsWellFormatted(param)
{
// Here is some code to determine whether the resource requested
// match with the required format or not
// return true if the format is ok
// return false if not
}
if (resourceIsWellFormatted(req.params['myresources']))
{
// render the resource
}
else
{
res.send(400); // HEY! what about the nice Connect.badRequest in its utils.js?
}
};
Eğer res.send(400)
sonra yorumunda görebileceğiniz gibi, ben olabileceğimi düşünmeye Connect modülünün utils.js
dosyasında bulunan badRequest
işlevini kullanmak mümkündür.
Aynı dosyada güzel md5
işlevinden ne haber?
Bu hugly onları ?:
var connectUtils =
require('../node_modules/express/node_modules/connect/lib/utils.js');
kullanmak benim myresources.js
başında çağrı yerleştirmek zorunda ya, (hatta app.js
için) daha zarif bir çözüm yoktur musunuz?
Yardımlarınız için şimdiden teşekkür ederiz!
Bu tekniğin geleceğe dönük olmasını bekleyemezsiniz. 'express @ 4.0.0', dahili olarak nasıl çalıştığını tamamen değiştirebilir ve bildiğiniz her şey için 'bağlan' seçeneğini bırakabilir (büyük olasılıkla değil, fakat noktayı alırsınız). Ve yine, projenizin bağımlılıklarına 'connect' ('express' tarafından kullanılan aynı sürümü) eklemeniz gerekiyorsa, bu teknik çalışmayacaktır. –
@GauthamBadhrinathan En kısa sürede herhangi bir zamanda bağlantı kurmayı ifade etmemeyi tercih etmiyorum :) Ancak, bağlantı kendi dosyalarının yerini ya da içinde ne olduğunu kolayca değiştirebilir - hangi IMHO çok daha büyük bir tehlike. Bu teknik, projenizin bağımlılıklarına bağ eklemeniz durumunda hala çalışmaya devam etmelidir, yol hala ifade etmeyi işaret eder, bu nedenle node.js ilk önce ifade edecek. Node.js belgelerinden (Dosya Modülleri) bölümü: * Bir '/' veya 'olmadan./ 'bir dosyayı belirtmek için, modül ya bir "çekirdek modülüdür" ya da bir node_modules klasöründen yüklenir. * http://nodejs.org/api/all.html#all_file_modules – Leonidaz
Evet, ifadeye gider "bir" çekirdek modül "veya" node_modules "içinde. Ancak 'connect' bir proje bağımlılığı olarak eklenirse, 'express '/ node_modules' dizininde' connect' * adlı bir dizin bulamazsınız. –