Продолжайте получать SyntaxError: неожиданный токен «экспорт»

#javascript #express #mongoose #body-parser #es6-modules

#javascript #выразить #мангуст #body-синтаксический анализатор #es6-модули

Вопрос:

Я не могу передать эти функции (первый код) в мой players.js (Второй код) файл поскольку я продолжаю получать SyntaxError: неожиданный токен ‘export’, я решил эту проблему, используя module.exports = но это решение, похоже, не работает с module.exports = ReadPlayers, ReadPlayer, createPlayer, DeletePlayer

Я копирую только одну из функций, чтобы упростить просмотр

 function CreatePlayer(req, res) {
    let PlayerDoc = new Players(req.body);
    PlayerDoc.save()
        .then((result) => {
            console.log('Player saved');
            res.location(result.uri)
                .status(201)
                .json({ id: result._id, uri: `/Players/${result.id}` })
        })

    .catch((error) => {
        res.status(412).json({ status: 'fail', message: 'not created' })
    })
    console.log('proising to save');
}


export default { ReadPlayers, ReadPlayer, CreatePlayer, DeletePlayer }
  
 const express = require("express");

const { db } = require('../models/PlayerService');

const router = express.Router();


router.post('/', (req, res) => {
    db.CreatePlayer(req, res);
})

router.get('/', (req, res) => {
    db.ReadPlayers(req, res);
})

router.get('/:id', (req, res) => {
    db.ReadPlayer(req, res);
})

router.delete('/:id', (req, res) => {
    db.DeletePlayer(req, res);
})

module.exports = router;
//export default router;
  

Комментарии:

1. module.exports = { ReadPlayers, ReadPlayer, CreatePlayer, DeletePlayer }

2. Теперь работает, спасибо. @Mr.Alien

3. Вам нужно выбирать между require() импортом / экспортом в старом стиле и экспортом импорта ES2015 в новом стиле; они разные. Для нового стиля вы должны явно указать Node, что исходный файл является модулем нового стиля.