Я пишу простой модуль разбивки на страницы для моего экспресс-приложения. Вот код:Как получить доступ к параметру запроса в модуле node.js?
var config = require('../config');
function Pagination(options) {
this.param = options.param || 'page';
//this.current = ?
this.perPage = options.perPage || config.perPage;
this.numPages = Math.ceil(options.numRows/this.perPage);
this.prevPage = null;
this.nextPage = null;
this.hasPrevPage = function() {
return (this.current > 1 && this.numPages);
}
this.hasNextPage = function() {
return (this.numPages > this.current);
}
if (this.hasPrevPage()) {
this.prevPage = this.current - 1;
}
if (this.hasNextPage()) {
this.nextPage = this.current + 1;
}
}
module.exports = Pagination;
Один из вариантов свойств паров. Это имя параметра запроса запроса, и по умолчанию это «страница». Например, если маршрут:
/posts/?page=3
pagination.current наборы для 3
Я предполагаю, что с помощью этого модуля в мое приложение должно выглядеть так
app.js:
//...
var postsRoute = require('./routes/posts');
app.use('/posts', postsRoute);
(/routes/posts.js):
var express = require('express');
var Pagination = require('..core/pagination');
var config = require('../config');
var router = express.Router();
router.get('/', function(req, res) {
//...
pagination = new Pagination({
numRows: dbresult.count,
perPage: config.perPage
});
res.render('posts', {posts: dbresult.rows, pagination: pagination});
});
Так что если модуль знает, что такое имя параметра разбиения на страницы, он должен иметь возможность получить его значение. Как сделать это прямо внутри модуля, а не внутри каждого маршрута? Желательно использовать только базовые функции узла.
Вы не показывают фактическую запуск вашего экспресс-сервера и подключения маршрутизатора в этом. – jfriend00
@ jfriend00 Отредактировано. Но я не думаю, что это действительно необходимо. Я хочу получить доступ с любого запроса, а не по одному маршруту. Например, в php мы имеем массив $ _REQUEST, доступный везде. Я прошу что-то вроде этого для node.js, а не для одного экспресс-маршрута или даже для выражения фреймворка. – femalemoustache