繁体   English   中英

无法使用Node.js从Mongodb中获取数据

[英]Unable to fetch data from Mongodb using Nodejs

我是Node 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); 

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

您需要使用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课程

首先,您需要从路由器中的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

您需要通过链接了解玉模板的结构

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM