node.js - 蒙哥错误: database names cannot contain the character ' ' when using mongoosejs connect to mLab

标签 node.js mongodb mongoose

这是我的 JS 代码:

var mongoose = require('mongoose'); 

mongoose.connect("mongodb://myUsername:myPassword@ds161039.mlab.com:61039/accounttest");

这是我启动服务器时的错误

C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongodb\lib\db.js:1774
if(databaseName.indexOf(invalidChars[i]) != -1) throw MongoError.create({message: "database names cannot contain the character '" + invalidChars[i] + "'", driver:true});
                                                ^
MongoError: database names cannot contain the character ' '
at Function.MongoError.create (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongodb-core\lib\error.js:31:11)
at validateDatabaseName (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongodb\lib\db.js:1774:70)
at new Db (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongodb\lib\db.js:154:3)
at NativeConnection.doOpen (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongoose\lib\drivers\node-mongodb-native\connection.js:55:15)
at NativeConnection.Connection._open (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongoose\lib\connection.js:531:15)
at C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongoose\lib\connection.js:289:11
at new Promise.ES6 (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongoose\lib\promise.js:45:3)
at NativeConnection.Connection.open (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongoose\lib\connection.js:288:17)
at Mongoose.connect (C:\Users\Qk Lahpita\Desktop\server_node_2\node_modules\mongoose\lib\index.js:242:47)
at Object.<anonymous> (C:\Users\Qk Lahpita\Desktop\server_node_2\server.js:36:10)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)

我的数据库名称是“accounttest”,不包含' '字符。为什么会出现此错误,我该如何解决?

谢谢!

最佳答案

问题是您的数据库名称本身。里面不应该有空格。

例子

const databaseName = "Users"
const connectionURI = "mongodb://127.0.0.1"

MongoClient.connect(connectionURI,{useUnifiedTopology:true},(err,client) => {
if(err) return log("Unable to connect to database");
log("Database Connected")

const db = client.db(databaseName);

然后你就可以做任何你想做的事例如:

db.addUser("John","kio")

关于node.js - 蒙哥错误: database names cannot contain the character ' ' when using mongoosejs connect to mLab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42479161/

相关文章:

javascript - 我的 Jade for 循环代码有什么问题?

mongodb - 在 MongoDB 中为 $lookup 结果添加一个字段

python - 匹配 EmbeddedDocumentList 中的 EmbeddedDocument

javascript - Mongodb 聚合以对数组中最常见的项目进行排序?

javascript - mongoose 不通过 ID 更新模型

javascript - React JS + React Router 可以使用 $.get 但不能使用 $.ajax PUT

javascript - ClojureScript 和 Cloud Firestore for Firebase 的兼容性

node.js - 重新连接后在socket.io-client中重新注册事件

mongodb - 使用DataImportHandler连接MongoDB和Solr的步骤

arrays - 将数据推送到嵌套数组nodeJs、MongoDB中