2017-08-03 10 views
0

複数のテーブルをクエリしてそれらの値をビューに渡そうとしていますが、これはエラーを生成するコードです。mssqlモジュールを使用してノードに表示する複数のアイテムをクエリ

router.get('/', function(req, res, next) { 
    sql.connect(config).then(() => { 
     return sql.query`select Project_Type_Desc from Project_Type` 
    }).then(result => { 
     return sql.query`select Curency_Code from Currency_List` 
    }).then(cur => { 
     res.render('newProject', {projects: result} , {currency : curr}) 
    }).catch(err => { 
      console.log(err) 
    }); 
}); 

私が間違っていることを教えてください。ありがとうございます。

+0

ここでエラーを追加してください。 –

+0

ええ、エラーメッセージは単に不便ではなく、貴重なデバッグツールです。 – James

+0

これは、1つのクエリrouter.get( '/'、function(req、res、next)){ sql.connect(config).then(()=> { Project_Type_DescからProject_Type'を返します{})。({res.render( 'newProject'、{projects:result}) })catch(err => { console.log(err) })私はしたいと思う私は複数のクエリを行う方法を知っている – SSS

答えて

0

最初のクエリの値を変数resultに変更しているようです。しかし、別のクエリを作成し、resultの範囲を失うと値を保持しないので、このようなことをしたいと思うでしょう。

router.get('/', function(req, res, next) { 
    // I've added a variable here which we will use to save the query 
    // result to. 
    let projectResult; 
    sql.connect(config).then(() => { 
     return sql.query`select Project_Type_Desc from Project_Type` 
    }).then(result => { 
     // Now we save the query result 
     projectResult = result; 
     return sql.query`select Curency_Code from Currency_List` 
    }).then(cur => { 
     // We are now outside of the scope from the last block (above), so we use 
     // the value we saved in the parent scope (router.get). 
     res.render('newProject', {projects: projectResult} , {currency : curr}) 
    }).catch(err => { 
     console.log(err) 
    }); 
}); 
関連する問題