如何在Node.js、MongoDB、Socket.IO开发场景下清理优化导入语句
导入语句优化方案
下面分两种常用模块规范给出优化方案,核心原则是砍掉冗余中间变量、统一声明规范、逻辑更紧凑:
CommonJS 规范优化(你当前使用的就是这个规范)
优化后代码:
// 合并导入与实例初始化,省去无意义的中间变量 const app = require("express")(); const httpServer = require("http").createServer(app); const io = require("socket.io")(httpServer); const mongoose = require("mongoose"); // 统一用const声明,直接解构取需要的配置项,省略多余的url变量 const { mongoUrl } = require("./config");
优化点说明:
- 去掉了后续不会单独调用的中间变量:
express、createServer、Server,导入直接完成实例初始化,代码更精简 - 把
var config替换为const解构,统一变量声明风格,避免变量意外篡改、变量提升等问题 - 省略了多余的
url变量,直接拿到需要的mongoUrl配置,减少无意义的赋值操作
ES Module 规范优化(Node 14.13.0+ 支持,更符合当前开发趋势)
如果你的项目已经开启ES Module支持(在package.json中添加"type": "module"即可),可以用更规范的import写法:
import express from "express"; const app = express(); import { createServer } from "http"; const httpServer = createServer(app); import { Server } from "socket.io"; const io = new Server(httpServer); import mongoose from "mongoose"; import { mongoUrl } from "./config.js";
额外建议:如果其他模块需要用到初始化好的io、app等实例,可以直接在当前文件导出,避免其他模块重复初始化导入。
内容的提问来源于stack exchange,提问作者Jerry Seigle
相关产品推荐
相关产品推荐

