[英]How to send mongodb data to browser using Node.js and eclipse
I want to print the data on browser fetched from mongodb using node.js.The data is in docs object.I want to pass this data to an ejs file.So that I can Insert it in to a table: 我想在使用node.js从mongodb获取的浏览器上打印数据,该数据在docs对象中,我想将此数据传递到ejs文件,以便可以将其插入到表中:
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
var findDocuments = function(db, callback) {
// Get the documents collection
var collection = db.collection('Pages');
// Find some documents
collection.find({}).toArray(function(err, docs) {
assert.equal(err, null);
//assert.equal(6, docs.length);
res.render('users', { title: docs });
console.log("Found the following records");
docs.forEach(function(doc) {
console.log("Doc from Array ");
console.dir(doc.PAGE_NAME);
});
callback();
});
};
var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected correctly to server");
findDocuments(db, function() {
db.close();
});
});
});
module.exports = router;
But it is throwing an error: 但这会引发错误:
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:335:11)
at ServerResponse.header (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\express\lib\response.js:700:10)
at ServerResponse.res.contentType.res.type (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\express\lib\response.js:537:15)
at ServerResponse.send (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\express\lib\response.js:129:14)
at fn (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\express\lib\response.js:934:10)
at View.exports.renderFile [as engine] (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\ejs\lib\ejs.js:353:10)
at View.render (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\express\lib\view.js:93:8)
at EventEmitter.app.render (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\express\lib\application.js:566:10)
at ServerResponse.res.render (c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\node_modules\express\lib\response.js:938:7)
at c:\Users\ELITEBOOK 8460P\WebstormProjects\untitled1\app.js:54:7
Please Help.... 请帮忙....
you are sending the response tow times 您正在发送响应两次
1- res.send('respond with a resource');
1- res.send('respond with a resource');
2- res.render('users', { title: docs });
2- res.render('users', { title: docs });
var express = require('express');
var router = express.Router();
var MongoClient = require('mongodb').MongoClient,
assert = require('assert');
var url = 'mongodb://localhost:27017/test';
/* GET users listing. */
router.get('/', function(req, res, next) {
// res.send('respond with a resource');
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected correctly to server");
var collection = db.collection('Pages');
// Find some documents
collection.find({}).toArray(function(err, docs) {
if (err) {
throw err;
return;
}
console.log("Found the following records");
docs.forEach(function(doc) {
console.log("Doc from Array ");
console.dir(doc.PAGE_NAME);
});
res.render('users', {
title: docs
});
db.close();
});
});
});
module.exports = router;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.