gpt4 book ai didi

mysql - babel 为何在 Sequelize 中不起作用

转载 作者:行者123 更新时间:2023-11-29 18:28:37 25 4
gpt4 key购买 nike

我目前使用以下代码来检索 Node Express 4.x 中的数据。但是有一个问题让我困惑

//models/User/User.js
import allUserName from './functions/allUserName';
module.export = function (sequelize,DataTypes){
const User = sequelize.define('User',{
id:......,
..........},{
tableName:'user',
classMethods:{
associate:function(models){
//assocoation.....},
allUserName:allUserName(this)
}
return User;
}

//in models/User/functions/allUserName.js
export default async function(model){
//some code
return result;
}
//in app.js
import models from '../../models/';
const user = require('express').Router();
user.get(...........,async function(req,res){
let list = await models.User.allUserName(models.User);
if(list){
res.status(200).send(list);
}else{
res.sendStatus(500)
}
})

当我在 bash 中使用 babel lib -d distnode ./dist/app.js 时,我看到如下错误:

 /root/api/lib/models/User/User.js:8
import allUserID from './functions/allUserID';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:53:10)
.....

如果我将 import 更改为 const

  const allUserName = require(....);
//no error but app.js says models.User.allUserName is not a function...

但是如果我更改为以下代码,它就可以正常工作!

    module.export = function (sequelize,DataTypes){
const User = sequelize.define('User',{
id:......,
..........},{
tableName:'user',
classMethods:{
associate:function(models){
//assocoation.....},
allUserName:async function(){
let list = await this.findAll({...})
return list;
}
}
return User;
}

谁能告诉我为什么会发生这个错误?我安装了babel和相关插件,其他功能都工作正常,直到我用这种方式编写用户模型。

最佳答案

看起来,您已将预设添加到 .babelrc,但没有使用 npm 安装它们。请使用以下命令安装相关预设:

npm install babel-preset-<your preset> --save-dev

此外,请使用 npm 脚本使用 babel,在脚本下的 package.json 中添加以下行。

"build": "babel lib -d dist"

并像 npm run build 一样使用它,因为 babel 已安装在您的项目中,并且您的操作系统不知道 babel。所以只有npm可以访问babel。因此,我们将要求 npm 使用 npm 脚本运行 babel 命令。

引用: Using Babel

注意:请使用命令 npm install babel-cli --save-dev 安装 babel,将其保存为开发依赖项并本地保存到您的项目中。

While you can install Babel CLI globally on your machine, it’s much better to install it locally project by project.

关于mysql - babel 为何在 Sequelize 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45930486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com