Sono nuovo nel mondo della Node.jsCollegare ed Express utils
Secondo questo argomento: What is Node.js' Connect, Express and “middleware”?
ho imparato che Connect faceva parte del Express
ho scavato un po 'nel codice, e ho trovato due file molto interessanti:
./myProject/node_modules/express/lib/utils.js
e migliori:
./myProject/node_modules/express/node_modules/connect/lib/utils.js
Questi due file sono pieni di funzioni utili e mi chiedevo come richiamarli correttamente.
Per quanto riguarda, in ./myProject/app.js
, che è quello che faccio:
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');
Ma ho trovato un po 'goffo, e che dire i miei file degli altri?
ad esempio, qui è uno dei miei percorsi:
myResources = app.resource(
'myresources',
require('./routes/myresources.js'));
e qui è il contenuto della 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?
}
};
Come si può vedere nel commento dopo la res.send(400)
, mi chiedo se è possibile utilizzare la funzione badRequest
che si trova nel file utils.js
del modulo Connect.
E la bella funzione md5
nello stesso file?
Devo collocare questo hugly chiamata all'inizio del mio myresources.js
loro ?:
var connectUtils =
require('../node_modules/express/node_modules/connect/lib/utils.js');
utilizzare Oppure, c'è una soluzione più elegante (anche per la app.js
)?
Grazie in anticipo per il vostro aiuto!
Non ci si può aspettare che questa tecnica sia a prova di futuro. 'express @ 4.0.0' potrebbe cambiare completamente il modo in cui funziona internamente e per quanto ne sai potrebbe cadere' connect' (non probabile, ma ottieni il punto). E ancora, se dovessi includere 'connect' (la stessa versione usata da' express') nelle dipendenze del tuo progetto, questa tecnica non funzionerà. –
@GauthamBadhrinathan Non prevedo connessioni rapide in qualunque momento presto :) Tuttavia, la connessione potrebbe facilmente cambiare la posizione dei file o di ciò che è contenuto in essi - il che IMHO è un pericolo molto più grande. questa tecnica dovrebbe funzionare anche se si include la connessione nelle dipendenze del progetto, il percorso punta ancora ad esprimere, quindi node.js andrà ad esprimere prima. dalla sezione node.js documentation (File Modules): * Senza un indicatore iniziale '/' o './ 'per indicare un file, il modulo è un "core module" o è caricato da una cartella node_modules. * http://nodejs.org/api/all.html#all_file_modules – Leonidaz
Sì, sarebbe andato a 'express 'che è o un" core module "o è in" node_modules ". Ma se 'connect' viene aggiunto come dipendenza del progetto, non si troverà una directory chiamata' connect' * all'interno * della directory 'express/node_modules'. –