javascript - NodeJs 设计模式 - 在全局配置或 API 路由中声明的大变量

标签 javascript node.js express

正在开发一个nodeJs应用程序。我有一个命中率很高的API路由。在 API 的 Controller 函数中,我必须使用一个相对较大的数组。我不确定是否应该在 config.js 中声明它(我假设只在内存中加载一次),还是应该在函数本身中声明它,以便为每个新传入请求将其加载到内存中。我不确定哪种方法内存效率高。

方法一。

/* Config.js */
const bigArray = ["String1", "String2",...];
module.exports = {bigArray};


/* Route.js*/
const {bigArray} = require("config.js");

router.get("/my_api", (req,res,next)=>{

    for(let item of bigArray){
        console.log(item);
    }
    return res.json({status: 1});
})

方法2。

/* Route.js*/


router.get("/my_api", (req,res,next)=>{

    const bigArray = ["String1", "String2",...];
    for(let item of bigArray){
        console.log(item);
    }
    return res.json({status: 1});
})

有人能给我指出正确的方向或在哪里查看模式详细信息吗?

最佳答案

假设数组没有发生变化,是的,您可能不应该在多次执行的路由处理程序中创建它。但不,没有理由将其放在单独的 config.js 文件中。就这么写

// Route.js
const bigArray = ["String1", "String2",...];
router.get("/my_api", (req, res, next) => {
    for (let item of bigArray) {
        console.log(item);
    }
    return res.json({status: 1});
});

关于javascript - NodeJs 设计模式 - 在全局配置或 API 路由中声明的大变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49898300/

相关文章:

javascript - 无法定义回调时使用angularjs JSONP

node.js - 错误 : ENOENT: no such file or directory and then the browser just shows nothing

node.js - Node.js 的有状态进程间通信

node.js - 在 Digital Ocean 上使用端口 80 与 Node 错误 : listen EADDRINUSE

javascript - 进入我在 firebase 托管上托管的应用程序,重定向到 google 登录页面

javascript - 扩展 jquery datepicker 的 beforeShow

node.js - res.end() 和 res.send() 有什么区别?

node.js - 使用 mv 模块重命名包含缓冲区数据的文件时出错

javascript - Req.isAuthenticated 变为 false

javascript - 访问 JavaScript 根级对象 THIS 关键字值