关于为什么我不能在jsforce-auth函数中使用heroku环境变量的任何线索



因此,我是一个团队的成员,该团队正在为我们的客户开发一个web应用程序,该客户使用salesforce作为他们的数据库。我们在heroku上使用node.js作为服务器端代码。前端是棱角分明的,但与我的问题无关。我们正在使用jsforce框架连接到我们的salesforce应用程序。客户端机密和客户端id作为环境变量存储在heroku中,并在本地存储!!当我用key和Id作为字符串对auth函数进行伪测试时,我就成功了。然而,任何除了硬编码之外的尝试,我都会遇到未定义变量的问题。这是app.js的代码。

var express = require('express');
var app = express();
var jsforce = require('jsforce');
//var conn = new jsforce.Connection();
//var username = process.env.SALESFORCE_USERNAME;
//var password = process.env.SALESFORCE_PASSWORD;
var consumersecret = process.env.SALESFORCE_CONSUMERSECRET;
var consumerkey = process.env.SALESFORCE_CONSUMERKEY;
console.log();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
// views is directory for all template files
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

app.get('/', function(request, response) {
response.render('pages/index');
});
var oauth2 = new jsforce.OAuth2({
    clientId : consumerkey,
    clientSecret : consumersecret,
    redirectUri : 'https://ap1.salesforce.com/services/oauth2/token'
});

 app.get('/oauth/callback', function(req, res) {
    res.redirect(oauth2.getAuthorizationUrl({scope :'api id web'}));
 });

app.listen(app.get('port'), function() {
console.log('Node app is running on //port', app.get('port'));
});

任何帮助或建议都将不胜感激!非常感谢。

在heroku中,如果您导航到设置,则会有一个选项卡显示配置变量。

在其中添加所需的变量。

例如,密钥为SALESFORCE_USERNAME

最新更新