J'essaie d'apprendre NodeJS et Express. Im en utilisant le paquet node-localstorage pour accéder au localstorage. Cela fonctionne en utilisant le code directement dans la fonction comme ceFonctions d'enregistrement de registre Node.JS + Express
routes/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"});
}
Mais je ne veux pas écrire ce code encore et encore dans tous mes autres fonctions lors de l'accès au localstorage. Je veux être en mesure d'enregistrer une fonction d'aide que je peux accéder comme
var localStorage = helpers.getLocalStorage
ou quelque chose comme ça.
Comment puis-je faire cela dans NodeJS? J'ai vu quelque chose sur app.locals? Mais comment puis-je accéder à l'objet d'application dans mes itinéraires?
Oui. Je l'ai fait quelque chose simillar: 'exports.getLocalStorage = function() { if (typeof localStorage === "non défini" || localStorage === null) { \t var LocalStorage = require ('nœud localStorage') .Stockage local; localStorage = new LocalStorage ('./ scratch'); } return localStorage; }; ' Considéreriez-vous votre chemin comme une« meilleure pratique »? Im essayant d'apprendre Node/express et je veux le faire "dans le bon sens" si vous savez ce que je veux dire. – JOSEFtw
Eh bien, cela dépend vraiment de ce que vous essayez de faire. Je sais que la "sagesse commune" est d'utiliser un dossier lib/pour des fonctionnalités communes lorsque vous avez plusieurs applications (comme conseillé par TJ Holowaychuk lui-même [ici] (http://vimeo.com/56166857)), mais d'autres préfèrent avoir [helpers localisés] (https: // github.com/madhums/nodejs-ex-mongoose-demo/tree/master/test). Je préfère cette méthode car je n'ai pas à me soucier du chemin vers 'utils' dans' require ('utils') '(toutes les autres méthodes utiliseront des chemins relatifs). – verybadalloc
@varybadalloc: J'ai eu accès à un projet Node (Node est nouveau pour moi) et remarque qu'il a déjà: require ('util') - cela semble être un paquet Node existant. Il n'y a pas de connexion, n'est-ce pas? Si c'est le cas, je vais simplement nommer mon module d'aide différemment pour plus de clarté. – Sean