无法使用Nodejs从Mongodb获取数据

时间:2015-04-09 10:00:41

标签: node.js mongodb express twitter-oauth

我是节点js的新手。玩不同的东西。目前我无法从twitter获取数据,也能够将其存储在mongodb数据库中。现在我想从mongodb获取存储的数据库并将其显示在浏览器上。任何人都可以帮助我获取和显示数据.....

var express = require('express');
var app = express.createServer(),
    twitter = require('ntwitter');
var mongojs = require('mongojs');
var db = mongojs('tweakdb', ['tweakdb']);
var bodyParser = require('body-parser');


var a='love';
var b='hate';

var watchList = [a, b];
var twit = new twitter({
  consumer_key: '',
consumer_secret: '',
access_token_key: '',
access_token_secret: ''
});

twit.stream('statuses/filter', { track: watchList }, function(stream) {
  stream.on('data', function (data) {
  console.log(data.user.screen_name + ': ' + data.text);
    console.log(data);
    console.log("\n\n\n\n");
    db.tweakdb.findAndModify({
        query: {'id': 'data.id'},
        update: { $set: data},
        upsert: true,
        new: true
    })
});
});



app.listen(3000);

上面我已经粘贴了应用程序的运行代码。

2 个答案:

答案 0 :(得分:0)

您需要使用MongoClient来连接数据库。

一个例子是:

 var MongoClient = require('mongodb').MongoClient // Driver for connecting to MongoDB
var app = express.createServer();

app.get('/', function(req, res) {
    MongoClient.connect('mongodb://localhost:27017/tweakdb', function(err, db) {
        db.collection("tweakdb").find({query}, {fields}, function(err, items) {
            if(err) throw err;
            res.render(items);
        })
    }
});

// spin up server
app.listen(8080, '127.0.0.1')

当您使用mongodb完成工作时,请调用“db.close()”来关闭连接。

我建议您使用university.mongodb.com

中的nodeJS + mongodb课程

答案 1 :(得分:0)

首先,您需要从路由器

中的mongo文档获取推文
router.get('/tweets', function(req, res) {
    var db = req.db;
    //you can filter tweets by screen name or other fields
    // var query = {"user.screen_name":"PUT_HERE_AS_PER_YOUR_REQUIREMENT"};
        db.tweakdb.find().toArray(function(err, tweets) {
            if(err) {
                res.status(err.status || 500);
                res.render('error', {
                    message: err.message,
                    error: err
                });
            } else {
                res.json(tweets);
                //res will get into router
            }

        });
});

现在根据快速模板路由呈现tweets.jade

  

// tweets.jade

extends layout

    block content
        h1.
            Tweet List
        ul
            each tweet, i in tweets
                li
                    tweet.id = tweet.text = tweet.place

您需要通过link

了解玉石模板结构