मैं इस विषय के अनुसार Node.jsकनेक्ट और एक्सप्रेस utils
की दुनिया में नया हूँ: What is Node.js' Connect, Express and “middleware”?
मुझे पता चला कि ConnectExpress
का हिस्सा था मैं कोड में एक छोटे से खोदा,
./myProject/node_modules/express/lib/utils.js
और बेहतर:
और मैं दो बहुत ही दिलचस्प फ़ाइलें मिलीये दो फ़ाइलें उपयोगी कार्यों से भरे हुए हैं और मैं सोच रहा था कि उन्हें सही तरीके से कैसे बुलाया जाए।
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');
लेकिन मैं इसे एक छोटे से अनाड़ी, और क्या मेरी दूसरों फ़ाइलों के बारे में पाया:
जहाँ तक, ./myProject/app.js
में, कि मैं क्या कर रहा है?
जैसे, यहाँ मेरी मार्गों में से एक है:
myResources = app.resource(
'myresources',
require('./routes/myresources.js'));
और यहाँ myresources.js
की सामग्री है:
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?
}
};
आप res.send(400)
के बाद टिप्पणी में देख सकते हैं, मैं अपने आप को अगर पूछना badRequest
फ़ंक्शन का उपयोग करना संभव है जो कनेक्ट मॉड्यूल की utils.js
फ़ाइल में है।
एक ही फ़ाइल में अच्छा md5
फ़ंक्शन के बारे में क्या?
मैं जगह को यह hugly मेरी myresources.js
के शुरू में फोन उन्हें ?:
var connectUtils =
require('../node_modules/express/node_modules/connect/lib/utils.js');
उपयोग करने के लिए या, वहाँ एक और अधिक सुरुचिपूर्ण समाधान (यहां तक कि app.js
के लिए) है?
आपकी मदद के लिए अग्रिम धन्यवाद!
आप इस तकनीक को भविष्य के सबूत होने की उम्मीद नहीं कर सकते हैं। 'एक्सप्रेस @ 4.0.0' पूरी तरह से बदल सकता है कि यह आंतरिक रूप से कैसे कार्य करता है और आप जो भी जानते हैं, उसके लिए' कनेक्ट 'ड्रॉप हो सकता है (संभावना नहीं है, लेकिन आपको बिंदु मिल सकता है)। और फिर, यदि आप अपनी परियोजना की निर्भरताओं में 'कनेक्ट' ('एक्सप्रेस' द्वारा उपयोग किया जाने वाला वही संस्करण) शामिल करना चाहते थे, तो यह तकनीक काम नहीं करेगी। –
@ गुथमबध्रिनाथन मैं जल्द ही किसी भी समय कनेक्ट ड्रॉप छोड़ने की पूर्ववत नहीं करता :) हालांकि, कनेक्ट आसानी से उनकी फ़ाइलों का स्थान बदल सकता है या उनमें क्या है - जो आईएमएचओ एक बड़ा खतरा है। इस तकनीक को तब भी काम करना चाहिए जब आप अपनी परियोजना की निर्भरताओं में कनेक्ट शामिल करते हैं, पथ अभी भी व्यक्त करने के लिए इंगित करता है, इसलिए node.js पहले व्यक्त करने के लिए जाएंगे। node.js प्रलेखन (फ़ाइल मॉड्यूल) सेक्शन: * बिना किसी अग्रणी '/' या '।/ 'फ़ाइल को इंगित करने के लिए, मॉड्यूल या तो "कोर मॉड्यूल" है या एक node_modules फ़ोल्डर से लोड किया गया है। * http://nodejs.org/api/all.html#all_file_modules – Leonidaz
हां, यह' एक्सप्रेस 'पर जाएगा 'जो या तो "कोर मॉड्यूल" है या "node_modules" में है। लेकिन यदि 'कनेक्ट' को प्रोजेक्ट निर्भरता के रूप में जोड़ा गया है, तो आपको 'express/node_modules' निर्देशिका * के भीतर' कनेक्ट' * नामक एक निर्देशिका नहीं मिलेगी। –