首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >express-stormpath request.uri未定义

express-stormpath request.uri未定义
EN

Stack Overflow用户
提问于 2015-09-02 02:11:32
回答 2查看 402关注 0票数 3

我去了一个新的虚拟机,并使用最简单的服务来确保虚拟机中没有出错,在那里我成功地为一个sailsjs应用程序提供了服务。

代码语言:javascript
复制
var express = require('express');
var stormpath = require('express-stormpath');

var app = express();

var stormpathInit = function(req,res,next) {
    stormpath.init(app, {
        apiKey: {
            id:'##########',
            secret: '############',
        },
        secretKey: 'theLongRoadToNowhere',
        application: 'https://api.stormpath.com/v1/applications/###',
        website: true,
        api: true
    });
    next();
};

app.use(stormpathInit);

app.get('/', function (req, res) {
    res.send('<a href="/login">Login</a>');
});

/* and this failed as well with the same output only on server startup

app.use(stormpath.init(app, {
    apiKey: {
        id:'4SL89BZ47ALZX6T9W7S4NPUXS',
        secret: 's0dA33RPTAqcDAcdbwj6q9i0qDDEr0XyHhsBmjF34SY',
    },
    secretKey: 'theLongRoadToFreedomWillPayDividends',
    application: 'https://api.stormpath.com/v1/applications/1wShCspJ1NFnT1N1UM1laJ',
    website: true,
    api: true
}));
*/

app.listen(1337);

///////////////////////
The error output:

req.uri = undefined
/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/ds/RequestExecutor.js:70
      throw new Error('request.uri field is required.');
            ^
Error: request.uri field is required.
    at RequestExecutor.executeRequest [as execute] (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/ds/RequestExecutor.js:70:13)
    at doRequest (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/ds/DataStore.js:277:27)
    at onCacheResult (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/ds/DataStore.js:301:5)
    at Array.<anonymous> (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/cache/Cache.js:54:14)
    at DisabledCache.get.DisabledCache.set.DisabledCache.delete.DisabledCache.clear.DisabledCache.size (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/cache/DisabledCache.js:11:62)
    at Cache.get (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/cache/Cache.js:52:14)
    at CacheHandler.getCachedResource [as get] (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/cache/CacheHandler.js:91:51)
    at Object.executeRequest [as exec] (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/ds/DataStore.js:294:22)
    at DataStore.getResource (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/ds/DataStore.js:122:16)
    at Client.getResource (/var/www/stormpath/node_modules/express-stormpath/node_modules/stormpath/lib/Client.js:313:38)

任何指导都很感谢……

EN

回答 2

Stack Overflow用户

发布于 2015-09-09 09:09:54

不幸的是,来自photon的答案对我不起作用,但在与Stormpath技术支持(这非常有帮助)沟通后,以下解决了我的问题:

通过在shell中运行以下命令来设置环境变量STORMPATH_APPLICATION_HREF

代码语言:javascript
复制
export STORMPATH_APPLICATION_HREF=<YourAppsHREF>

希望这也能对其他人起作用。

这个问题似乎是stormpath文档中的一个小打字错误。它们当前指示您设置一个名为STORMPATH_CLIENT_APPLICATION_HREF的环境变量。这是不正确的,它应该是如上所示的STORMPATH_APPLICATION_HREF

票数 3
EN

Stack Overflow用户

发布于 2015-09-08 17:34:12

我也遇到了同样的问题,在查看了当前的default options for the Stormpath middleware之后,更改以下代码行解决了我的问题。

之前的

代码语言:javascript
复制
application: 'https://api.stormpath.com/v1/applications/1wShCspJ1NFnT1N1UM1laJ'

之后的

代码语言:javascript
复制
application: {
    href: 'https://api.stormpath.com/v1/applications/1wShCspJ1NFnT1N1UM1laJ'
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32338287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档