我想使用node.js将数据写入mongodb数据库

时间:2016-02-11 09:54:14

标签: angularjs node.js mongodb express

现在我正在将数据写入json文件并将其返回到要显示的html页面。现在我想和mongodb数据库做同样的事情。我尝试了一些东西,但它没有用。

app.get('/', function(req, res){
url = 'http://www.amazon.in/Sony-Xperia-Z3-Copper-32GB/dp/B010V448ZC/ref=pd_rhf_se_s_cp_6?ie=UTF8&dpID=419rmomR%2BjL&dpSrc=sims&preST=_SL500_SR135%2C135_&refRID=19RT23W7T48Z99XNT6GK';

request(url, function(error, response, html){
    if (!error) {
        var $ = cheerio.load(html)
        var json = {Product_Name : "", Brand : "", Color : "", Image : "", Price : "", Rating : ""};

        var P_name = $('#title').children().text();
        var brand = $('#brand').text();
        var color = $('.a-row').find('span.selection').text();
        var price = $('#price').find('span.a-size-medium').text();
        var rating = $('#averageCustomerReviews').find('span.a-icon-alt').text();
        var image = $('.imgTagWrapper').children().attr('src');

        /*json.Product_Name = P_name;
        json.Brand = brand.trim();
        json.Color = color.trim();
        json.Price = price.trim();
        json.Rating = rating.trim();
        json.Image = image.trim();

        fs.writeFile('output.json', JSON.stringify(json, null, 4), function(err){
            console.log('File successfully written! - Check your project directory for the output.json file');
        })*/


        var insertDocument = function(db, callback) {
           db.collection('proInfo').insertOne( {

                "Product_Name": P_name,
                "Brand":brand,
                "Color":color,
                "Price":price,
                "Rating":rating,
                "Image":image

           }, function(err, result) {
                assert.equal(err, null);
                console.log("Inserted a document into the proInfo collection.");
                callback(result);
          });
        };

        MongoClient.connect(url, function(err, db) {
          assert.equal(null, err);
          insertDocument(db, function() {
              db.close();
          });
        });

        res.send('Check your console!')
    } else {
        console.log("We’ve encountered an error: " + error);
    }
})
})

它在console.log中显示了一些错误

D:\ Hemanth \ Node Js \ web scraper \ node_modules \ mongodb \ lib \ url_parser.js:20     抛出新的错误('无效的架构,预期的mongodb');     ^

错误:架构无效,预期mongodb     在module.exports

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

在节点js路由中使用模块导出,并在module.export中定义方法,如下所述:

module.export {}

然后调用该方法,在node应用程序下的server.js中应用路由:

erc(app, 
     {
      controllers: __dirname + '/routes',
      routes:{'/methodnametobecalled': { action: 'routesfilename#methodname'}
     }
});

答案 1 :(得分:-1)

初始化Mongoose和架构

var mongoose = require('mongoose');
mongoose.connect('mongodb://YOURVALUES.mongolab.com:11111/NAME');
var schema = new mongoose.Schema({ name: 'string', account: 'string', date: 'string' });
var accountz = mongoose.model('accountz', schema);

创建

var small = new accountz({
     name: "SAMZ",
     account: "Monthly",
     date: "29/12/2015"
 });
 small.save(function (err) {
     if (err){
         console.log("Error in Save");
     }else{
         console.log("Save Sucessfully");
     }
 });

<强>读取

accountz.find().exec(function(err, data){
     if (err){
         console.log("Error in Reading");
     }else{
         console.log("The value = " + data);
     }
 });

<强>更新

accountz.findOne({ "_id": "0023"}, function (err, doc){
     doc.name = editObj.name;
     doc.account = editObj.account;
     doc.date = editObj.date;
     doc.save(function (err) {
         if (err){
             console.log("Error in Updating");
         }else{
             console.log("Updated Sucessfully");
         }
     });
 });

删除

accountz.remove({ "_id": "0023"}).exec(function(err, data){
    if (err){
        console.log("Error in Deleting");
    }else{
        console.log("Deleting Sucessfully");
    }
});

参考此链接https://shiyamexperience.wordpress.com/2015/12/29/mongodb-crud-using-mongoose/