Легкое промежуточное программное обеспечение и решение по обработке маршрутов для следующего.js. Оснащен Dirext?
$ npm install connext-js
Инициализировать новый экземпляр Connext.
const Connext = require ( 'connext-js' ) ;
const app = Connext ( ) ; Connext-это промежуточное программное обеспечение для Next.js с синтаксисом в стиле экспресса, который поддерживает как глобальное, так и гибкое промежуточное программное обеспечение, специфичное для конкретного маршрута. Для глобального промежуточного программного обеспечения вы должны создать папку controllers , которая должна содержать файл контроллера global.js . Мы также рекомендуем создавать файлы контроллера для вашего другого промежуточного программного обеспечения как способ модуляризации вашей логики API.
Установка маршрутов с использованием connext очень напоминает настройку маршрутов в Express.
Все действительные методы запроса HTTP имеют связанные методы на объекте Connext.
app . get ( ) ;
app . post ( ) ;
app . put ( ) ;
app . delete ( ) ;
app . head ( ) ;
app . trace ( ) ;
app . patch ( ) ;
app . options ( ) ;
app . connect ( ) ;Connext поддерживает любую статическую или запрашиваемую конечную точку API. Поддержка динамической маршрутизации скоро появится. ⚡
В connext у вас есть доступ к объекту запроса, доступному в next.js, и этот доступ сохраняется через цепочку промежуточного программного обеспечения- точно так же, как Express! Доступными свойствами являются req.url , req.method и req.body .
В отличие от Express, если вам нужно сохранить данные, вы можете добавить любой ключ к объекту ответа с любыми данными, которые вы хотите сохранить. Это просто увеличит ваш объект ответа и продолжит сохранять этот объект на протяжении всего жизненного цикла запроса. БЫВШИЙ:
response . data = JSON . stringify ( data ) ;
response . match = true ;
response . array = [ 'I' m the data you need '];Пример структуры файла:
├── ...
├── controllers
│ ├── global.js # required for global middleware
│ └── middleware.js # suggested for modularization of middleware functions
├── pages # required folder for routes in Next.js
│ └── api # required folder for API routes in Next.js
└── ...
Чтобы использовать глобальную функциональность промежуточного программного обеспечения Connext, вы должны создать файл global.js в папке, называемой controllers . Папка controllers должна быть на том же уровне, что и ваша папка pages , а ваш файл global.js должен экспортировать массив .
connext есть простой глобальный встроенный обработчик ошибок, который будет работать всякий раз, когда что-то передается в вызов next() . Если вы хотите использовать свой собственный обработчик ошибок, определите его в global.js как последний элемент экспортированного массива.
Global.js Пример
// a global middleware function
const globalOne = ( req , res , next ) => {
console . log ( 'this the first function that runs!' ) ;
return next ( ) ;
} ;
// another global middleware function
const globalTwo = ( req , res , next ) => {
console . log ( 'another one!' ) ;
return next ( ) ;
} ;
// global error handler
const errorHandler = ( err , req , res , next ) => {
return res . status ( 500 ) . send ( 'an error occurred' ) ;
} ;
// export your array of global middleware
module . exports = [ globalOne , globalTwo , errorHandler ] ; Мы рекомендуем вам модулизировать другое промежуточное программное обеспечение в одном или нескольких файлах в файле controllers , чтобы ваш код был читаемым и простым в отладке?
Middleware.js Пример
const middlewareController = { } ;
middlewareController . functionOne = ( req , res , next ) => {
// middleware functionality here
return next ( ) ;
}
middlewareController . functionTwo = ( req , res , next ) => {
// middleware functionality here
return next ( ) ;
}
module . exports = middlewareController ;Как и в Express, каждый метод в Connext имеет строку, связанную с ней, которая соответствует действующему методу HTTP.
Например: GET, DELETE, POST и т. Д.
Чтобы определить маршрут, используя Connext, добавьте файл JavaScript в папку api Next.js.
├── pages # required folder for routes in Next.js
│ └── api # required folder for API routes in Next.js
│ └── exampleRoute.js # created route file inside of API folder
Внутри файла маршрута
const Connext = require ( 'Connext-js' ) ;
const middleware = require ( '../../controllers/middleware' ) ;
const app = Connext ( ) ;
app . get ( '/api/exampleRoute' , middleware . one , middleware . two , ( req , res ) => {
res . status ( 200 ) . json ( res . example ) ;
} ) ;
app . post ( '/api/exampleRoute' , middleware . three , ( req , res ) => {
res . status ( 200 ) . json ( res . example ) ;
} ) ;
app . delete ( '/api/exampleRoute' , middleware . four , ( req , res ) => {
res . status ( 200 ) . json ( res . example ) ;
} ) ;
export default app ;Сара Пауэрс
Эли Галлиполи
Изуми Сато
Алекс Кан