#node.js #express
#node.js #выразить
Вопрос:
Я работаю в проекте NodeJS, где я хотел передать параметр в промежуточном программном обеспечении, чтобы я мог проверять в коде.
Например, созданное мной промежуточное программное обеспечение выглядит следующим образом
'use strict';
// eslint-disable-next-line no-unused-vars
import BadRequest from '../../../errors/BadRequest';
// eslint-disable-next-line no-unused-vars
import ResponseFormatter from '../../../util/ResponseFormatter';
export default function middlewareWithParam (options) {
return function (req, res, next) {
// Implement the middleware function based on the options object
return next();
//ResponseFormatter.error(new BadRequest('03'), req, res);
};
}
Теперь я хочу использовать это промежуточное программное обеспечение в классе контроллера, чтобы, передавая разные значения для каждой промежуточной точки, можно было проверить запрос.
Например.
Controller class
import { middlewareWithParam } from '../middlewares/validators/Role/middlewareWithParam';
export default class RoleController extends BaseController {
paths = [
{
'method': 'GET', 'path': '/', 'middlewares': [middlewareWithParam({option1 : '1',option2 : '2'})], 'handler': this.getRoleList
},
{
'method': 'GET', 'path': '/getRoleByID', 'middlewares': [middlewareWithParam({option1 : '3',option2 : '4'})], 'handler': this.getRoleByID
}
}
но я получаю сообщение об ошибке, которое
'middlewares': [(0, _middlewareWithParam.middlewareWithParam)()],
^
TypeError: (0 , _middlewareWithParam.middlewareWithParam) is not a function
Ответ №1:
Нет необходимости в деструктурировании. удалите фигурные скобки. изменить
import { middlewareWithParam } from '../middlewares/validators/Role/middlewareWithParam';
Для
import middlewareWithParam from '../middlewares/validators
Взгляните на https://exploringjs.com/es6/ch_destructuring.html
Редактировать:
Или сделайте что-то подобное, чтобы определить его.
function middlewareWithParam(options) {
return function(req, res, next) {
// return next();
};
}
module.exports = {
middlewareWithParam
}
Или удалите значение по умолчанию.
export function middlewareWithParam(options) {
return function(req, res, next) {
// return next();
};
}