2017-08-11 29 views
0

我开始使用Mongo数据库。我想在mongo中插入两个变量。因此,在同一个文件
1.-我定义了两个变量
2.-我创建一个函数,返回一个带有两个变量的JSON格式对象
3.-我在Express中创建一个应用程序来填充值的两个变量并将它们发送出去
4.-我连接到Mongo并插入JSON对象,创建一个集合并将第一个参数传递给函数,该函数返回带有两个参数的JSON对象变量。
结果检查控制台:
1.-连接正确
2:还有就是我觉得我有scopes.How的问题会是正确的顺序插入一个JSON对象,但空作用域将mongo集成在一个节点/快速文件中

// Express files 
var express = require('express'); 
var app = express(); 

// Mongo files 
var mongodb=require("mongodb") 
var MongoClient = mongodb.MongoClient; 
var MONGODB_URI="mongodb://user:[email protected]:00000/" 
// Variables 
var one; 
var two; 

// JSON object to insert in mongo 
var doc=function(one,two){ 
    return{ 
     "one":one, 
     "two": two 
     } 
} 

// App in Express 
app.get("new/:which",function(req,res){ 
    one=req.params.which 
    var randomNum=Math.round(Math.random()*10000) 
    two=req.headers["x-forwarded-host"]+("/")+randomNum.toString() 

    res.end(JSON.stringify(doc(one,two))) 
}) 

// Mongo connection and insertion of JSON object 
MongoClient.connect(MONGODB_URI,function(err,db){ 
     if (err) { 
      console.log('Unable to connect to the mongoDB server. 
        Error:', err); 
     } else { 
      console.log('Connection established to', MONGODB_URI); 
       } 

     var collection=db.collection("url") 
     collection.insert(doc(one,two),function(){ 
      if(err) throw err 
      console.log(JSON.stringify(doc(one,two))) 
      db.close() 
      }) 


}) 

回答

1

// Express files 
 
var express = require('express'); 
 
var app = express(); 
 

 
//mongoose files 
 
var mongoose = require('mongoose'); 
 
mongoose.Promise = require('bluebird'); 
 

 
mongoose.connect('mongodb://user:[email protected]:00000/'), { 
 
\t useMongoClient: true, 
 
}); 
 

 
//Define the document schema 
 
var Schema = new mongoose.Schema({ 
 

 
    one: { 
 
    type: String, //or maybe Number 
 
    required: true 
 
    }, 
 
    two: { 
 
    type: String, 
 
    required: true 
 
    }, 
 

 
}); 
 

 
var Model = mongoose.model('model', Schema); 
 

 
app.get("/new/:which",function(req,res){ 
 
    one=req.params.which 
 
    var randomNum=Math.round(Math.random()*10000) 
 
    two=req.headers["x-forwarded-host"]+ ("/")+randomNum.toString(); 
 

 
    var new_doc = new Model({ 
 
    one: one, 
 
    two: two 
 
    }); 
 
    
 
    new_doc.save(err=>{ 
 
    err ? res.send(err) : res.send('added!'); 
 
    }); 
 
    
 
});

我建议使用猫鼬NPM包与蒙戈 工作,就可以拆分代码转换成模块更舒适

0

我找到了答案的问题MongoDB大学Node开发人员在无障碍课程中的范围,展示如何整合Mongo University
序列号e是以下几点:

//Dependencies 
var express = require('express'); 
var app = express(); 
var mongodb=require("mongodb") 
var MongoClient = mongodb.MongoClient; 
var MONGODB_URI 
="mongodb://<user>:<psswd>@000000.mlab.com:41358" 

// Connection to mongo 
MongoClient.connect(MONGODB_URI,function(err,db){ 

    app.use("/new/:which",function(req,res){ 
       var one=req.params.which 
       var two=req.headers["x-forwarded-host"]+"/"+randomNum 

     // Insertion of documents 

       db.collection("url").insertOne({"one":one, 
              "two":two}) 
       res.send({"one":one,"two":two}) 


    }) 

    var listener = app.listen(8000) 

} 

因此,应用程序必须蒙戈连接和应用程序的范围内收集方法的范围之内。
在应用程序将是端口的同一级别。
插入到数据库中的文档以及结果也将其发送给客户端。