我在 MongoDB Atlas 上有一个新的沙箱集群,我在 Node.js 服务器上使用 mongoose 连接到该集群。这是我用来连接的代码:
const mongoDbUrl =
`mongodb+srv://${username}:${password}@mydb-sandbox-12345.mongodb.net/testdb`
mongoose.connect(mongoDbUrl)
const connection = mongoose.connection
connection.on('connected', () => {
console.log('Connected to mongodb')
})
Run Code Online (Sandbox Code Playgroud)
在 Atlas 仪表板中,我有一个readWriteAnyDatabase要进行身份验证的用户。身份验证按预期工作。我能够连接到数据库,并且连接上没有错误。我可以通过删除密码中的一个字符来确认这一点 - 身份验证失败并且我无法连接。
问题是当我尝试插入文档时。
const UserModel = require('./models/User')
UserModel.create({
name: 'Hello Atlas'
})
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
MongoError: not authorized on admin to execute command {
insert: "users",
documents: [
[{
name Hello Atlas
} {
_id ObjectIdHex("5aa17933d72d25730a340611")
} {
__v 0
}]
],
ordered: false
}
Run Code Online (Sandbox Code Playgroud)
据我所知,我进行身份验证的用户应该有权读取和写入我正在连接的数据库。我不明白的另一部分是错误表明它正在尝试写入,admin即使我的 url 连接到 …
对于我正在构建的Roku应用程序,我需要获取Vimeo用户的频道列表.它是公共数据,因此我可以使用Simple API来获取它,如下所示:
https://vimeo.com/api/v2/user17146517/albums.json
通过访问url,该请求非常有效 - 我获得了一组JSON对象.请求在Roku项目中设置(同步):
req = createObject("roUrlTransfer")
req.setUrl("https://vimeo.com/api/v2/user17146517/albums.json")
response = req.getToString()
print "response: "; response
Run Code Online (Sandbox Code Playgroud)
响应空洞.当我异步尝试请求时,请求超时,我什么也得不到.我也尝试对完整的Vimeo API使用经过身份验证的请求,但是看到了同样的问题.
这段代码非常适合其他网址.像JSON Test API这样简单的东西会给我数据.我在Khan Academy(http://www.khanacademy.org/api/v1/playlists)上找到了一个视频播放列表,其格式与我想要的Vimeo API类似,并且效果也很好.什么是Vimeo做的不同,我错过了?谢谢!