我在MLab上创建了一个免费的数据库,我在节点中设置了连接,但是当我尝试插入时出现错误:
错误:未在capina上授权执行命令{insert: \“产品\”,文件:[{_ id: ObjectId('5b255d56a7be644ca873631e'),name:\“טארלטמלוחאישי\”, priceNoVAT:0.97,priceVAT:1.05,quantityPerUnit:150,单位: \“ארגז\”,totalPrice:130,__ v:0}],ordered:true}“
以下是连接代码:
//works fine, no error here
mongoose
.connect(
"mongodb://" +
process.env.MONGO_USERNAME +
process.env.MONGO_PWD +
"@ds161620.mlab.com:61620/" + process.env.DB_NAME
)
.catch(err => {
console.error(err);
});
以下是模型:
const mongoose = require("mongoose");
const productSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: { type: String, required: true },
priceNoVAT: Number,
priceVAT: Number,
quantityPerUnit: Number,
unit: String,
totalPrice: Number
});
module.exports = mongoose.model("Product", productSchema);
这是我试图调用的测试路径并得到错误:
router.post("/", (req, res) => {
const product = new Product({
_id: new mongoose.Types.ObjectId(),
name: "טארלט מלוח אישי",
priceNoVAT: 0.97,
priceVAT: 1.05,
quantityPerUnit: 150,
unit: "ארגז",
totalPrice: 130
});
product
.save()
.then(result => {
res.json({ message: "Product Saved" });
})
.catch(err => {
console.log(err);
res.json({ message: "Error:" + err.message });
});
});
用户名/密码是正确定义的,当我记录它时,我看到我得到了正确的值,所以我真的不确定我做错了什么?!
答案 0 :(得分:0)
终于搞定了,这是一个愚蠢的错误但是,它可能发生在其他人身上,所以我在这里发布答案:
我忘了在用户名和密码之间添加“:”,所以:
"mongodb://" +
process.env.MONGO_USERNAME +
process.env.MONGO_PWD +
"@ds161620.mlab.com:61620/" + process.env.DB_NAME
实际应该是:
"mongodb://" +
process.env.MONGO_USERNAME +
":" +
process.env.MONGO_PWD +
"@ds161620.mlab.com:61620/" + process.env.DB_NAME