2017-06-21 14 views
0

NodeJSを使用していて、jsforce(salesforce)を使用してフォームにドロップダウンを設定しようとしています。NodeJS Appでリモートソースからデータを引き出すことができます。

jsforceが必要なモジュールを作成し、ログインパラメータを設定して接続しました。

``modules/sftools.js 
const jsforce = require('jsforce') 
const conn = new jsforce.Connection({ 
    loginUrl: process.env.SF_LOGINURL 
}) 
conn.login(process.env.SF_USER, process.env.SF_PASS) 

exports.metaDropDown = async (field) => 
    conn.sobject...describe.. 
    return arrayOfValues 
} 

私はindex.jsに私が

``index.js 
const sftools= require('../modules/sftools') 
const roles = sftools.metaDropDown(process.env.SF_ROLES) 

を持っているし、私は常にセットreq.rolesの=ロールにいくつかのミドルウェアを使用して値が、私のアプリ全体で利用返さようにしたいです。

私は、接続が確立する前に役割を要求しているが、フローを把握できないという問題があると思います。

エクスポートコードの前にログインしようとしましたが、おそらくまだログインしていないため、無効なURLエラーが表示されます。 私はエラーを取り除いたmetaDropdownエクスポートに直接ログインコードを書き込もうとしましたが、まだデータは返されません。

提案がありますか?

答えて

1

私は、あなたの問題は、ログイン機能がコールバックを第3引数として期待していることだと思います。

conn.login(process.env.SF_USER, process.env.SF_PASS, function() { 
    // do your role logic here. 
}) 

これが役立ちます。

+0

ありがとう、私はそれを逃した。それでも私が望むものは得られません(おそらくPHPの背景から来ています...)。しかし、メソッドをモジュールとしてエクスポートしたいのであれば、私のロジックをそこに置くことができますか?または、非同期/待機ログインでJSForceとのすべての対話をラップする必要があります。これは、ミドルウェアで一度取得してから使用できるようにすることができないことを意味しますか? – McB

+0

ミドルウェアとはどういう意味ですか?あなたはチャットに行きたいですか? http://chat.stackoverflow.com/rooms/147287/middleware –