javascript - 为什么在将用户输入数据库时​​出现错误?

标签 javascript mongodb

我正在自学Mongodb。首先,我在 Terminal 中运行 npm install --save mongoose uuid 来开始操作。我的程序的目标是将用户存储在数据库中。

终端中,运行node index.js后,我想说:

About to save!
Saved!

但是我在Terminal中看到的是(如下):

这是index.js

var mongoose = require('mongoose');
var uuid = require('uuid');

var Schema = mongoose.Schema;


/* New code from suggested website in error */ 

var promise = mongoose.connect('mongodb://localhost:testMongo/testMongo', {
    useMongoClient: true,
});

promise.then(function(db) {

    db.model();
    connection.openUri('mongodb://localhost:testMongo/testMongo', { /* options */ });


var userSchema = new Schema({
    email: {
        type: String,
        unique: true
    },
    password: {type: String},

    todos: [
        {
            text: {type: String}
        }
    ]
});

userSchema.pre('save', function(next) {
    console.log("About to save!");
    var user = this;
    user.password = uuid.v4();
    next();
});

 var User = mongoose.model('user', userSchema);
 var email = 'test@test.com';

// var user = new User({
//     email: email
// });
//
// user.save(function(err) {
//     if(err) {
//         return console.log(err);
//     } else {
//         return console.log("User was saved!");
//     }
// })
//
// console.log("Outside of callback!");

var text = "This is a todo.";

User.findOne({email: email}, function(user, err) {
   if(err) {
       return console.log(err);
   }

   if(!user) {
       return console.log("Couldn't find user!");
   }

   var count = user.todos.push({
       text: text
   });

   console.log(count);

   user.save(function(err){
      if(err) {
          console.log(err);
      } else {
          console.log("Saved!");
      }
   });
});

终端中出现错误:

(node:14312) DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0, use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`. See http://mongoosejs.com/docs/connections.html#use-mongo-client
{ _id: 595fe7c14a9810330c75aacc,
  password: '297d5907-d9d7-49ef-800c-97a56aa395f7',
  email: 'test@test.com',
  __v: 0,
  todos: [] }

最佳答案

这不是一个错误。它清楚地表明这是一个警告:DeprecationWarning。 该消息还为您提供了解决警告的链接: http://mongoosejs.com/docs/connections.html#use-mongo-client

关于javascript - 为什么在将用户输入数据库时​​出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979120/

相关文章:

javascript - 如何在 Internet Explorer 9 或 10 中安装 JavaScript?

javascript - 从 AngularJS API 服务返回一个值给 Controller

c++ - MongoDB 3.2 c++ 驱动程序,使用 $exists

mongodb - 如何根据mongodb中嵌入式数组中AccountNum的长度更新所有TypeID

javascript - 在 Web 控件中处理多个事件

javascript - 我在表格字段中有文本我想通过使用悬停和 if 条件在 Java 脚本中包装文本

mysql - 哪个数据库引擎最适合处理数组值?

带 SSL 和不带 SSL 的 MongoDB 安装程序

mongodb 身份验证禁用和启用问题

javascript - 使用外部数据库在多个站点上更新 html 和 css