Sto cercando di imparare NodeJS ed Express. Im usando il pacchetto node-localstorage per accedere a localstorage. Questo funziona quando si utilizza il codice direttamente nella funzione come questaRegistrazione Funzioni di supporto Node.JS + Express
percorsi/social.js
exports.index = function(req, res)
{
if (typeof localStorage === "undefined" || localStorage === null)
{
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage('./scratch');
}
localStorage.setItem('myFirstKey', 'myFirstValue');
console.log(localStorage.getItem('myFirstKey'));
res.render('social/index', {title: "Start"});
}
Ma io non voglio scrivere questo codice più e più volte in tutta la mia altra funzioni quando si accede a thestorage. Voglio essere in grado di registrare una funzione di supporto a cui posso accedere come
var localStorage = helpers.getLocalStorage
o qualcosa del genere.
Come posso farlo in NodeJS? Ho visto qualcosa su app.locals? Ma come posso accedere all'oggetto app nei miei percorsi?
Sì. Ho fatto qualcosa simillar: 'exports.getLocalStorage = function() { if (typeof localStorage === "indefinito" || localStorage === null) { \t var LocalStorage = require ('nodo-localStorage') .Memoria locale; localStorage = new LocalStorage ('./ scratch'); } return localStorage; }; Considereresti la tua strada come una "migliore pratica"? Sto cercando di imparare Node/express e voglio farlo "nel modo giusto" se sai cosa intendo. – JOSEFtw
Beh, dipende davvero da cosa stai provando a fare. So che la "saggezza comune" è usare una cartella/lib per funzionalità comuni quando si hanno più app (come consigliato da TJ Holowaychuk stesso [qui] (http://vimeo.com/56166857)), ma altri preferiscono avere [helper localizzati] (https: // github.com/madhums/nodejs-express-mangusta-demo/albero/master/test). Preferisco questo metodo perché non devo preoccuparmi del percorso di 'utils' in' require ('utils') '(Tutti gli altri metodi useranno percorsi relativi). – verybadalloc
@varybadalloc: Mi è stato concesso l'accesso a un progetto Node (il nodo è nuovo per me) e noto che ha già: require ('util') - sembra un pacchetto Node esistente. Non c'è connessione giusta? Se è così, chiamerò il mio modulo helper in modo diverso per chiarezza. – Sean