wangduanduan / wangduanduan.github.io

Wubba Lubba dub-dub
https://wdd.js.org
27 stars 7 forks source link

思路新奇的require方法 #215

Closed wangduanduan closed 5 years ago

wangduanduan commented 5 years ago

常见方案:每个文件都有可能调用require

// file1.js
var morgan = require('morgan');
var mongoose = require('mongoose');
var passport = require('passport');
// file2.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var bcrypt = require('bcrypt-nodejs');

新奇方案:统一的require

在allMyNeedModules统一加载所有所需的模块,其他模块加载allMyNeedModules中的模块。

// allMyNeedModules.js
module.exports = {
    request: require("request"), //used for request http
    fs: require('fs'),
    path: require('path'),
    chalk: require('chalk'),
    moment: require('moment'),
    express: require('express'),
    session: require('express-session'),
    eJWT: require('express-jwt'),
    bodyParser: require('body-parser'),
    cors: require('cors'),
    passport: require('passport'),
    passportLocal: require('passport-local'),
    crypto: require('crypto'),
    dotenv: require('dotenv'),
    jwt: require('jsonwebtoken'),
    jwtclaims: require('jwt-claims'),
    redis: require('redis'),
    mongodb: require('mongodb'),
    mongoose: require('mongoose'),
    assert: require('assert'),
    shortid: require('shortid'),
    badWords: require('bad-words'),
    enum: require('enum'),
    errorHandler: require('errorhandler'),
    morgan: require('morgan')
};

在其他文件中

// file1.js
const { cors } = require('./allMyNeedModules.js')

参考