尝试在Mlab上连接到MongoDB时出错

时间:2018-06-16 19:03:46

标签: node.js mongodb express

我在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 });
    });
});

用户名/密码是正确定义的,当我记录它时,我看到我得到了正确的值,所以我真的不确定我做错了什么?!

1 个答案:

答案 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