Node.js - повторяющиеся операторы require ('path' / 'module') - PullRequest
0 голосов
/ 02 марта 2019

Мой вопрос заключается в том, отрицательно ли влияет на производительность отрицательное влияние нескольких операторов require ('path' / 'module').

// Multiple require('path') statements
const express = require("express");
const app = express();

app
  .route("/example")
  .get(require("./api/api.js").example.get)
  .put(require("./api/api.js").example.put)
  .post(require("./api/api.js").example.post)
  .delete(require("./api/api.js").example.delete);

по сравнению с ..

// Single require('path') statement
const express = require("express");
const app = express();

const api = require("./api/api.js");
app
  .route("/example")
  .get(api.example.get)
  .put(api.example.put)
  .post(api.example.post)
  .delete(api.example.delete);

1 Ответ

0 голосов
/ 02 марта 2019

Это может повлиять на производительность, но только на минимальную величину.Несколько require s (или import s) одного и того же модуля больше не запускают код модуля - все, что он делает, - это получает доступ к экспортам уже существующего модуля в памяти.Точно не стоит беспокоиться о ради производительности .Это очень похоже на доступ к одному и тому же свойству объекта снова и снова.

Однако для удобства чтения второй код гораздо понятнее, хотя вы могли бы еще больше уменьшить повторяемость (и повысить производительность на незначительную величину).сначала извлекая свойство example:

const { example } = require("./api/api.js");
app
  .route("/example")
  .get(example.get)
  .put(example.put)
  .post(example.post)
  .delete(example.delete);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...