首页 > 解决方案 > 为 mongodb 字段值使用变量。节点.JS

问题描述

我正在尝试为 Discord 学习机器人创建,并且我正在尝试设置一个命令以从命令中获取信息并使用它在 MongoDB 数据库中创建一个文档。我已经能够使用纯字符串文本作为值使用此代码执行此操作,但是当我尝试使用变量时,我会遇到一个错误,导致它们一起崩溃。我目前正在使用 MongoDB 的 localhost 安装进行测试。我正在使用最新的 Node.JS 和 MongoDB npm 包。该命令设置为对变量采用“命令用户原因”。

const Discord = require("discord.js");  
const mongodb = require('mongodb').MongoClient;


module.exports.run = async (bot, message, args) => {  
  var dburl = "mongodb://localhost:27017/";  
  var rUser = message.mentions.members.first();  
  if(!rUser) return message.channel.send("Couldn't find user.");  
  var rReason = args.join(" ").slice(22);  
  console.log("Basic variables set");  

  mongodb.connect(dburl, function(err, db) {  
    useNewUrlParser: true;  
    if (err) throw err;  
    console.log("Start connection");  
    var dbo = db.db("Viper");  
    console.log("dbo set");  
    var myobj = { time: message.createdAt, reporteduser: rUser, reportedby: 
message.author.id, reportedin: message.channel, reason: rReason };  
    console.log("myobj set");  
    dbo.createCollection("reports", function(err, res) {  
      if (err) throw err;  
      console.log("Collection created!");  
    });  
    dbo.collection("reports").insertOne(myobj, function(err, res) {  
      if (err) throw err;  
      console.log("1 report filed");  
    })  
    console.log("Database Created!");  
    db.close();  
    console.log("Database Closed");  
  });  
}

运行命令时,我通过“数据库关闭”获取所有控制台日志,但随后会引发链接错误。 https://i.gyazo.com/thumb/1200/9ae8f31997a953bb1e7a25d47e964edb-png.jpg

我对编码还很陌生,所以我一点也不知道为什么会抛出这个错误,而且我无法从任何做类似事情的人那里找到任何东西。

编辑:我切换到 Mongoose 并且能够让它以这种方式工作。

标签: node.jsmongodbdiscord

解决方案


推荐阅读