无法将es6导入和导出与sequ​​elize一起使用

时间:2018-10-11 15:02:17

标签: javascript node.js ecmascript-6 sequelize.js babeljs

我正在使用convictjs来管理我的nodejs应用程序的配置文件。具有配置架构的文件称为“ config.js”,位于“ config”文件夹中。

我正在使用es6导入和导出语句

import convict from "convict";
import dotenv from "dotenv";
import configDev from "./config.dev";
import configProd from "./config.prod";
import configStage from "./config.stage";
.
.
.
export default config.getProperties();

这些配置文件包含数据库凭证和其他必要的数据库信息,我在“ index.js”中使用这些模型作为续集模型。

注意:在开发过程的早期,我们尝试将es6与sequ​​elize一起使用时遇到了其他问题,因此我们选择将es5用于模型,迁移和种子。

当前,每当我尝试执行迁移时,seuqlize都会引发如下所示的错误

ERROR: Error reading "config\config.js". Error: SyntaxError: Unexpected token 
import

Babel设置正确,除了数据库迁移外,我可以进行编译和运行该应用程序而没有任何问题。感谢您为解决此问题提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

据我所知,Node.js还不支持此语法,因此您应该在执行之前使用 function getHierarchy(node, parentCount, list = []){ const parent = node.parentElement; if(!!!parent) return list; if(parentCount !== undefined && list.length === parentCount) return list; list.push(parent); return getHierarchy(parent, parentCount, list); } function readXml(xmlString){ const parser = new DOMParser(); return parser.parseFromString(xmlString, 'text/xml'); } const xml = readXml(xmlData); const target = Array.from(xml.getElementsByTagName('example')).find(p=>p.textContent.trim() === 'example'); const hierarchy = getHierarchy(target, 3); console.log(hierarchy); 或使用babel来转换代码。

UPD::似乎可以从v10.12.0 https://nodejs.org/api/esm.html开始在Node.js中启用ES6模块

<div class="container-fluid">
        <div class="row">
            <div class="col-12">
                <h1 class="text-center" style="margin-top:100px;color:White;font-size:40pt;">Site in constructie</h1>
            </div>
            <div class="col-0 col-md-3"></div>
            <div class="col-12 col-md-6">
                <form id="subscribeForLaunch" class="input-group">
                    <input type="text" class="form-control" style="background:rgba(255,255,255,0.8);" placeholder="Email" />
                    <button class="btn btn-info">Submit!</button>
                </form>
            </div>
            <div class="col-0 col-md-3"></div>
        </div>
    </div>