Im пытается узнать NodeJS и Express. Я использую пакет node-localstorage для доступа к localstorage. Это работает при использовании коды непосредственно в функции, как этотРегистрация Вспомогательные функции Node.JS + Express
маршруты/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"});
}
Но я не хочу писать этот код снова и снова во все моем друге функции при доступе к localstorage. Я хочу иметь возможность зарегистрировать вспомогательную функцию, к которой я могу получить доступ, например
var localStorage = helpers.getLocalStorage
или что-то в этом роде.
Как это сделать в NodeJS? Я что-то видел в app.locals? Но как я могу получить доступ к объекту приложения на своих маршрутах?
Да. Я сделал что-то: всего напоминает 'exports.getLocalStorage = функция() { если (TypeOf LocalStorage === "неопределенный" || LocalStorage === нуля) \t { вар LocalStorage = требуется ('узла-LocalStorage') .LocalStorage; localStorage = новый LocalStorage ('./ scratch'); } return localStorage; }; ' Вы считаете свой путь« Лучшей практикой »? Я пытаюсь узнать Node/express, и я хочу сделать это «правильно», если вы знаете, что я имею в виду. – JOSEFtw
Ну, это действительно зависит от того, что вы пытаетесь сделать. Я знаю, что «общая мудрость» заключается в использовании библиотеки lib/для общей функциональности, когда у вас есть несколько приложений (как советовал сам TJ Holowaychuk [здесь] (http://vimeo.com/56166857)), но другие предпочитают с [локализованными помощниками] (https: // github.ком/madhums/nodejs-экспресс-мангуст-демонстрационный/дерево/ведущий/тест). Я предпочитаю этот метод, потому что мне не нужно беспокоиться о пути к 'utils' в' require ('utils') '(Все остальные методы будут использовать относительные пути). – verybadalloc
@varybadalloc: Мне предоставлен доступ к проекту Node (узел для меня новичок) и обратите внимание, что он уже имеет: require ('util') - похоже, это уже существующий пакет Node. Нет никакой связи? Если это так, я просто буду называть мой вспомогательный модуль по-разному для ясности. – Sean