Home > database >  How can i export an import for its side effects only in ecmascript 6?
How can i export an import for its side effects only in ecmascript 6?

Time:07-23

Recently i saw a video that i guy was exporting a module in commonjs:

// src/routes/index.js file

module.exports = [
  require('./user'),
  require('./auth'),
  require('./demo')
]
// src/routes/user.js

const exppres = require('express')
const api = express.Router()

api.post('/user' , doSomething())

// src/handler.js

const express = require('express')
const api = require('./routes')
const app = express()

app.use(api) // add all routes

I tried all different ways of doing, like:

export default {
   import "./user",
   import "./auth"
}

and in server layer

import api from './routes'

but nothing works...

Someone knows how to do it?

CodePudding user response:

Try this

module.exports = {
  user:require('./user'),
  auth:require('./auth'),
  demo: require('./demo')
}

Then access them like this

const {user,auth, demo} = require("path to the expoted module")

CodePudding user response:

I don't quite understand what you mean by "for its side effects only", because then you wouldn't need to export anything. Importing for side effects only is done like this with ES6 modules:

import './user';
import './auth';
import './demo';

If you wanted to re-export something from these modules, you'd typically write

export * from './user';
export * from './auth';
export * from './demo';

or

export { default as user } from './user';
export { default as auth } from './auth';
export { default as demo } from './demo';

You would not export an array.

  • Related