Невозможно импортировать файл модуля в узел js - PullRequest
0 голосов
/ 05 марта 2019

Я написал модуль для общего пользования.

const { check, body } = require('express-validator/check');
var models = require("../models");

let Validations = [
    check('email').isEmail().withMessage("Invalid Email"),
    check('phone').isLength({ min: 5 }).withMessage("Min length Required"),
    check('name').not().isEmpty().withMessage("Value is Required"),
    body("name").custom(value => {
        return models.fundraisers.findByName(value).then(user => {
        if (user) {
            return Promise.reject('E-mail already in use');
        }
        })
    })
]

export { Validations };

Я пытаюсь получить доступ, как показано ниже.

import Validations from "../validations/fundraiser";

Но я получаю сообщение об ошибке ниже.

import Validations from "../validations/fundraiser";
       ^^^^^^^^^^^

SyntaxError: Unexpected identifierI

Я не смог найти то, чтоэта проблема.Пожалуйста, помогите кому-нибудь решить эту проблему.

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 05 марта 2019

попробуйте это:

const  Validations = [...];

...

export default Validations;

, а затем:

import Validations from '../validations/fundraiser';
0 голосов
/ 05 марта 2019

импорт все еще является экспериментальной функцией в node.js.

, чтобы использовать их, вы должны использовать --experimental-modules работающий узел и использовать *.mjs расширение

node --experimental-modules test.mjs

test.mjs:

import a from './test2'
a();

test2.mjs:

const a = () => console.log(22)
export default a;
0 голосов
/ 05 марта 2019

Вы смешиваете commonjs модули с ES6 модулями.Вы можете прочитать больше об основах здесь .Что вы можете сделать, это изменить:

export { Validations };

на

module.exports = Validations;

, тогда при импорте используйте следующий синтаксис:

const Validations = require('../validations/fundraiser');

Если вы хотите использоватьболее новый синтаксис, тогда

  1. будет согласованным и используйте import / export
  2. , используйте транспортер типа babel для преобразования вашего кода в *Синтаксис 1024 *, так что вы также можете использовать его в нодовых и старых браузерах.
0 голосов
/ 05 марта 2019

вы должны попытаться импортировать как этот помощник

import {Validations} из "../validations/fundraiser";

, а также для этого ваш узел должен поддерживать ES6 и выше.ура приятель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...