我通过Node.JS模块使用Cloudant服务,通过Bluemix VCAP_SERVICES(或本地副本)提供凭据。该实例使用
创建var Cloudant = require('cloudant');
// var cloudantCreds obtained from process.env.VCAP_SERVICES
var username = cloudantCreds.username;
var password = cloudantCreds.password;
var cloudant = Cloudant({
account:username,
password:password
});
我编写了一个函数,可以在用户请求时自动创建/删除数据库,并且成功运行。这是内部使用的
cloudant.db.create(databaseName, function(err, res){
// Handle
});
然而,最近我收到一个错误:
'server_admin access is required for this request'
我只使用一套凭据和一个帐户。在curl的命令行中使用这些凭据允许我成功创建/删除数据库,但似乎无法通过node.js模块执行此操作?
据我所知,我没有更改任何与Node.js服务器的此功能相关的代码。
是什么原因导致我现在需要server_admin访问?从错误消息的性质来看,我可能已通过身份验证,但未获得授权?
答案 0 :(得分:1)
事实证明这是我的错误,尽管Cloudant并不是特别有用。
我正在尝试使用不允许的名称创建数据库,例如以下划线开头或包含大写字母。更改数据库名称,一切正常。
答案 1 :(得分:0)
如果您的数据库以下划线为前缀,则会抛出错误......