как экспортировать const

У меня есть два файла и нужно экспортировать const из одного в другой.Сама не понимаю почему неверно. Пишу вот так import route from './routes/auth'

Файл откуда экспорт

const express = require('express')

import * as AuthController from '../controllres/auth'

const router = express.Router()

router.post('/signup', AuthController.signup)
router.post('/signin', AuthController.signin)

export default router;

Файл куда экспорт

const express = require('express')
const mongoose = require('mongoose')
const session = require('express-session')
const bodyParser = require('body-parser')
const morgan = require('morgan')
const config = require('config')
const bluebird = require('bluebird')

import route from './routes/auth'

const PORT = config.get('port') || 5000

const app = express();

mongoose.Promise = bluebird


mongoose.connect(config.get('database'))
            .then( () => console.log('mongoOk'))
            .catch( () => console.log('nook'))


app.listen(PORT, () => console.log(`port ${PORT}`))

app.use(morgan('combined'))

app.use(bodyParser.json())

app.use(bodyParser.urlencoded({
    extended: true
}))

app.use(session({
    resave: true,
    saveUninitialized: true,
    secret: "steind"
}))

app.use('/api', route)

Ответы (1 шт):

Автор решения: Alexander Yukal

export и import в NodeJS все еще находятся в экспериментальном режиме. Вы можете их использовать указав параметр "type": "module" в вашем package.json файле. Применяя данный подход, вы также должны явно указать расширение файла, которое импортируете.

Подробнее об этом можно посмотреть здесь:

Также обратите внимание на слово controllres у вас там опечатка.

И еще один нюанс: app.listen() лучше вызывать в самом конце, после добавления всех app.use() и подобных конструкций, потому как объект app подвергается изменениям и ему нужно собрать всю необходимую информацию до того как приложение будет готово и переведено в режим прослушивания.

Я использую версию NodeJS 14.15.1 и вот что у меня получилось:

package.json

{
  "type": "module",
  "dependencies": {
    ...
  }
  ...
}

controllers/auth.js

export function signup(req, res, next) {
  return res.end('signup', 'utf8');
}

export function signin(req, res, next) {
  return res.end('signin', 'utf8');
}

routes/auth.js

import { Router } from 'express';

import * as AuthController from '../controllers/auth.js';

const router = Router();
router.get('/signup', AuthController.signup);
router.get('/signin', AuthController.signin);

export default router;

index.js

import express from 'express';
import { json, urlencoded } from 'body-parser';

import route from './routes/auth.js';

const PORT = 5000;
const app = express();

app.use('/api', route);

app.listen(PORT, () => console.log(`port ${PORT}`));
→ Ссылка