#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, что исходный файл является модулем нового стиля.