Nodejs требует не работает

1

Почему следующий код не работает

const {express} = require('express');

const router = express.Router();

Неразрешенная функция или метод Router

но эта работа

const express = require('express');

и если я хочу сделать это, то что мне делать. Два метода в одном требуют

const {validationResult, check} = require('express-validator/check');

узел -v//v8.3.0

Я пытаюсь использовать это. Https://github.com/ctavan/express-validator#usage

  • 0
    Потому что это деструктурирующее задание
Теги:

1 ответ

4
Лучший ответ

Почему следующий код не работает

const {express} = require ('express');

const router = express.Router();

Вы используете деструктурирование, чтобы извлечь свойство, которого нет. Ваш код эффективно делает это:

const temp = require('express');
const express = temp.express;

Объект, возвращаемый require('express') имеет несколько свойств, но .express не является одним из них, поэтому вы в конечном итоге устанавливаете выражение в undefined. И затем, когда вы вызываете express.Router(), вы получаете сообщение об ошибке.

Ваш код, который работает, просто сохраняет весь объект, а затем обращается к нему с правильными именами свойств. Вы можете сохранить этот код, или если вы знаете, что вас интересует только маршрутизатор, который вы можете сделать:

const {Router} = require('express');
const router = Router();

который был бы почти таким же, как:

const express = require('express');
const Router = express.Router;
const router = Router();

и если я хочу сделать это, то что мне делать. Два метода в одном требуют

const {validationResult, check} = require ('express-validator/check');

Я не знаком с тем, что экспортирует библиотека. Если вы знаете, что объект имеет как validationResult и check и что это единственное, что вас беспокоит, тогда ваш код выглядит отлично.

  • 0
    Очень хорошее объяснение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню