モジュールメソッドとしてasyncawaitを使用する方法

ネクロフェイス

これは私がExpressを使って書いたルートです

const express=require('express');
const router=express.Router();

const trackRepo=require('../model/track');

router.post('/live',function(req,res){
    const time=1439832167;
    const list=trackRepo.getAlerts(time);
    res.json({list:list});
});

module.exports=router;

async / awaitを使用する場所:

const r=require('rethinkdb');
const config=require('../config/rethinkdb');

r.connect(config).then((conn)=>{
    module.exports.getAlerts=async (function(time){
        const cursor=await r.table('track').filter({createdAt:time}).run(conn);
        return await cursor.toArray();
    });
});

これは私の app.js

const express=require('express');
const app=express();
const server=require('http').createServer(app);
const bodyParser=require('body-parser');
const cookieParser=require('cookie-parser');
const session=require('express-session');

// Utilities
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.use(cookieParser());

// Template
app.set('view engine','ejs');

// Static
app.use(express.static(__dirname+'/static'));

// Middlewares
app.use(require('./route/web'));
app.use(require('./route/track'));

// Listening
app.listen(4444,function(){
    console.log('Server listening on port 4444...');
});

私はという名前のファイルを書きますserver.js、これはエントリポイントであるはずでapp.js、サーバーを実行する前にbabelにトランスパイルします

require('babel/register');
require('./app.js');

これは私がインストールするdevDependenciesのリストです package.json

 "devDependencies": {
    "babel-cli": "^6.16.0",
    "babel-core": "^6.17.0",
    "babel-plugin-syntax-async-functions": "^6.13.0",
    "babel-plugin-transform-async-to-generator": "^6.16.0",
    "babel-plugin-transform-regenerator": "^6.16.1",
    "babel-polyfill": "^6.16.0",
    "babel-preset-es2015": "^6.16.0",
    "babel-preset-latest": "^6.16.0"
  }

コマンドを使用してサーバーを起動すると、asyncawait行babel-node server.jsでスローさUnexpected tokenれます。検索したガイドに従っていて混乱しているのですが、なぜエラーが発生し続けるのかわかりません。どうすればこれを修正できますか?

ベルギ

関数式を引数として指定された関数、タグが付けられているにもかかわらずキーワードを使用する関数式async(function(){ await … })を呼び出す構文エラーが原因で、例外が発生しますasyncawaitasync

そのはず

router.post('/live', async function(req,res){
    const time = 1439832167;
    const list = await trackRepo.getAlerts(time);
//               ^^^^^ it's a promise, so you need to await it
    res.json({list:list});
});

const r = require('rethinkdb');
const config = require('../config/rethinkdb');

const connection = r.connect(config);
module.exports.getAlerts = async function(time) {
//                         ^^^^^^^^^^^^^^ two keywords, nothing between
    const conn = await connection;
//               ^^^^^^^^^^^^^^^^ don't export functions asynchronously, just wait inside it
    const cursor = await r.table('track').filter({createdAt:time}).run(conn);
    return await cursor.toArray();
};

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

モジュールを使用してRailsモデルにクラスメソッドを動的に追加する方法

分類Dev

メソッド属性としてモジュールアノテーションを使用する

分類Dev

rubyモジュールでmethod_missingを使用して動的メソッドを作成する方法

分類Dev

モジュールが変数に割り当てられているときにモジュールでメソッドを使用する方法

分類Dev

Factoryメソッドを使用してサービスを作成しているときにAngularJSモジュールが未定義です

分類Dev

MVCでJQUERYAJAXを使用してビューモデルをアクションメソッドに投稿する方法

分類Dev

ボケプロットモジュールでvbarメソッドを使用してカテゴリ棒グラフを描画する方法

分類Dev

関数でasyncawaitモジュールを使用する

分類Dev

あるRubyモジュールのメソッドを別のモジュールで使用する

分類Dev

nnet_ts モジュールの TimeSeriesNnet() メソッドを使用すると NameError がスローされる

分類Dev

子ビューモデルメソッドを使用して親ビューバインドコマンドを作成する方法

分類Dev

Mockitoを使用してメソッドでコールバックをモックして検証する方法

分類Dev

Rubyでモジュールメソッドを改良する方法は?

分類Dev

PHPでクラスメソッドをモジュール化する方法は?

分類Dev

ビュー変数を使用してビューからモデルメソッドをコード化する方法は?

分類Dev

Pythonのロギングモジュールを使用してデバッグメッセージのみをファイルに記録し、オプションとしてデバッグモードを有効にする方法は?

分類Dev

Revealing Module Patternを使用して、あるJSモジュールのパブリックメソッドを別のJSモジュールに呼び出す方法は?

分類Dev

静的メソッドを使用して関数コンストラクターをエクスポートするCommonJSモジュールを入力する

分類Dev

モジュールのメソッドでselfを使用する場合

分類Dev

クラス内でモジュールメソッドを使用する

分類Dev

メソッドをゴルーチン関数として使用する方法

分類Dev

モジュールメソッドはNoMethodErrorを返します

分類Dev

AI :: Pathfinding :: AStarCPANモジュールを使用してPerlで「オブジェクトメソッド "new" [...]を見つけることができません」

分類Dev

動的クラスと動的モジュールを使用する場合に Sphinx を使用して Python ドキュメントを自動生成する方法

分類Dev

ローカル変数をパラメータとして使用するモック内部メソッド

分類Dev

Ruby:クラスメソッド内でモジュールメソッドを使用する

分類Dev

ワイルドカードを使用してジェネリックメソッドの動作をモックする方法

分類Dev

モジュール/メソッド名をコマンドライン引数として渡す方法python2.7.10

分類Dev

GETメソッドを使用して同じページ内のモーダルにIDを渡す方法は?

Related 関連記事

  1. 1

    モジュールを使用してRailsモデルにクラスメソッドを動的に追加する方法

  2. 2

    メソッド属性としてモジュールアノテーションを使用する

  3. 3

    rubyモジュールでmethod_missingを使用して動的メソッドを作成する方法

  4. 4

    モジュールが変数に割り当てられているときにモジュールでメソッドを使用する方法

  5. 5

    Factoryメソッドを使用してサービスを作成しているときにAngularJSモジュールが未定義です

  6. 6

    MVCでJQUERYAJAXを使用してビューモデルをアクションメソッドに投稿する方法

  7. 7

    ボケプロットモジュールでvbarメソッドを使用してカテゴリ棒グラフを描画する方法

  8. 8

    関数でasyncawaitモジュールを使用する

  9. 9

    あるRubyモジュールのメソッドを別のモジュールで使用する

  10. 10

    nnet_ts モジュールの TimeSeriesNnet() メソッドを使用すると NameError がスローされる

  11. 11

    子ビューモデルメソッドを使用して親ビューバインドコマンドを作成する方法

  12. 12

    Mockitoを使用してメソッドでコールバックをモックして検証する方法

  13. 13

    Rubyでモジュールメソッドを改良する方法は?

  14. 14

    PHPでクラスメソッドをモジュール化する方法は?

  15. 15

    ビュー変数を使用してビューからモデルメソッドをコード化する方法は?

  16. 16

    Pythonのロギングモジュールを使用してデバッグメッセージのみをファイルに記録し、オプションとしてデバッグモードを有効にする方法は?

  17. 17

    Revealing Module Patternを使用して、あるJSモジュールのパブリックメソッドを別のJSモジュールに呼び出す方法は?

  18. 18

    静的メソッドを使用して関数コンストラクターをエクスポートするCommonJSモジュールを入力する

  19. 19

    モジュールのメソッドでselfを使用する場合

  20. 20

    クラス内でモジュールメソッドを使用する

  21. 21

    メソッドをゴルーチン関数として使用する方法

  22. 22

    モジュールメソッドはNoMethodErrorを返します

  23. 23

    AI :: Pathfinding :: AStarCPANモジュールを使用してPerlで「オブジェクトメソッド "new" [...]を見つけることができません」

  24. 24

    動的クラスと動的モジュールを使用する場合に Sphinx を使用して Python ドキュメントを自動生成する方法

  25. 25

    ローカル変数をパラメータとして使用するモック内部メソッド

  26. 26

    Ruby:クラスメソッド内でモジュールメソッドを使用する

  27. 27

    ワイルドカードを使用してジェネリックメソッドの動作をモックする方法

  28. 28

    モジュール/メソッド名をコマンドライン引数として渡す方法python2.7.10

  29. 29

    GETメソッドを使用して同じページ内のモーダルにIDを渡す方法は?

ホットタグ

アーカイブ