私は現在、以下のコードを使ってNode express 4.xのデータを取得しています。しかし、問題がある、私はbashでbabel lib -d dist
、その後node ./dist/app.js
を使用する場合、私はのようなエラーが表示され、私にバーベルはどのようにして後遺症で動作しませんでしたか
//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)
}
})
を混乱:私は
const allUserName = require(....);
//no error but app.js says models.User.allUserName is not a function...
をCONSTするインポートを変更した場合
/root/api/lib/models/User/User.js:8
import allUserID from './functions/allUserID';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:53:10)
.....
しかし、私が次のコードに変更すれば、うまく動作します!
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;
}
なぜこのエラーが発生するのか教えてください。私はこの方法でUserモデルを書くまで、バベルと関連するプラグインをインストールしました。他の関数はうまくいきます。
実際にファイルをトランスバーリングするためにバベルを使用しましたか? – Li357
はい、私のbabelrcが { "プリセット" である:[ "es2015"、 "ステージ2"]、 "プラグイン":[ [、{ "ポリフィル" "ランタイム変換":偽の、 "再生器" :true }] ] } –
CLI経由でトランシルしましたか? – Li357