使从远程源提取的数据在 NodeJS 应用程序中可用

Make data pulled from a remote source available in NodeJS App

我刚开始使用 NodeJS,正在尝试使用 jsforce (salesforce) 来填充表单上的下拉菜单。

我写了一个模块,需要 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 = roles.

我认为问题是我在建立连接之前请求角色,但我无法弄清楚流程。

我尝试在导出代码之前登录,但出现无效 URL 错误,可能是因为它尚未登录。 我尝试将登录代码直接放到metaDropdown export中,这样就解决了错误,但是还是没有返回数据。

有什么建议吗?

我认为您遇到的问题是登录函数需要回调作为第三个参数。

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

希望对您有所帮助。