javascript - Node.js - 重复 require ('path'/'module' ) 语句

标签 javascript node.js npm

我的问题是,拥有多个相同的 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);

最佳答案

它可能会影响性能,但影响很小。同一模块的多个 require(或 import)不会再次运行该模块的代码 - 它所做的只是访问内存中已存在的模块的导出。 为了性能,这绝对不是值得担心的事情。这与一遍又一遍地访问对象的相同属性非常相似。

但是,为了可读性,第二个代码更加清晰,尽管您可以通过首先提取 example 属性来进一步减少重复性(并且可以微不足道地提高性能):

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

关于javascript - Node.js - 重复 require ('path'/'module' ) 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952532/

相关文章:

javascript - JQuery 复选框值不起作用

node.js - 我应该在插入到 MongoDB 之前解析 JSON 数据吗?

node.js - grunt-autoprefixer 到 grunt-postcss

macos - 在运行Gradle 'PATH'时指定 'exec'环境不起作用

javascript - 如何读取json

javascript - 将 Meteor 与 Adob​​e Flash CreateJS 工具包一起使用

javascript - 如何在angular.js中一键显示多个div

javascript - Joi - 针对特定条件使用 'valid'

node.js - Telegram Bot - NodeJs - 任务在循环中

javascript - 如何通用导出 NPM 模块(用于浏览器)?