Tôi đang cố gắng học NodeJS và Express. Im sử dụng gói node-localstorage để truy cập localstorage. Này hoạt động khi sử dụng mã trực tiếp trong hàm như thế nàyĐăng ký chức năng Trợ giúp Node.JS + Express
tuyến/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"});
}
Nhưng tôi không muốn viết mã này hơn và hơn nữa trong khác tất cả của tôi khi truy cập localstorage. Tôi muốn có thể đăng ký chức năng trợ giúp mà tôi có thể truy cập như
var localStorage = helpers.getLocalStorage
hoặc tương tự như vậy.
Tôi làm cách nào để thực hiện điều này trong NodeJS? Tôi đã nhìn thấy một cái gì đó về app.locals? Nhưng làm cách nào tôi có thể truy cập đối tượng ứng dụng trong các tuyến đường của mình?
Có. Tôi đã làm một cái gì đó simillar: 'exports.getLocalStorage = function() { if (typeof localStorage === "không xác định" || localStorage === null) \t {var LocalStorage = require ('nút-localStorage') .Lưu trữ cục bộ; localStorage = new LocalStorage ('./ scratch'); } trả về localStorage; }; ' Bạn có cân nhắc theo cách của mình là" Phương pháp hay nhất "không? Tôi đang cố gắng học Node/express và tôi muốn làm điều đó "đúng cách" nếu bạn biết ý tôi là gì. – JOSEFtw
Vâng, nó thực sự phụ thuộc vào những gì bạn đang cố gắng làm. Tôi biết rằng "sự khôn ngoan thông thường" là sử dụng một thư mục lib/cho chức năng phổ biến khi bạn có nhiều ứng dụng (theo lời khuyên của TJ Holowaychuk mình [ở đây] (http://vimeo.com/56166857)), nhưng, những người khác thích có [người trợ giúp được bản địa hóa] (https: // github.com/madhums/nodejs-express-mongoose-demo/cây/chủ/thử nghiệm). Tôi thích phương pháp này bởi vì tôi không phải lo lắng về đường dẫn đến 'utils' trong' require ('utils') '(Tất cả các phương thức khác sẽ sử dụng các đường dẫn tương đối). – verybadalloc
@varybadalloc: Tôi đã được cấp quyền truy cập vào một dự án Node (Node là mới đối với tôi) và nhận thấy rằng nó đã có: require ('util') - đó dường như là một gói Node hiện có. Không có kết nối phải không? Nếu vậy, tôi sẽ chỉ đặt tên mô-đun trợ giúp của tôi khác nhau để rõ ràng. – Sean