你好,我在浏览器上运行这段代码时没有得到任何结果。文档在我的控制台中显示,但现在在浏览器中显示。我想知道哪里出了错。我是nodejs的新手,正在照本宣科,但它并不能很好地工作。API.JS
var http = require('http');
var url = require('url');
var database = require('./database');
function findAllProducts(resourceName,req,res){
database.find('Orderbase','order','{}',(err,documents)=>{
res.writeHead(200,{'Content-Type':'application/json'});
res.end(JSON.stringify(documents));
});
};
var server = http.createServer((req,res)=>{
parsedURL = url.parse(req.url,true);
switch(parsedURL.pathname)
{
case '/api/order/':
if (parsedURL.query.id)
{
findProductById(id,req,res);
}
else
{
findAllProducts(req,res);
}
break;
default:
res.end(JSON.stringify("you shell not pass!"));
}
});
server.listen(8080);
console.log('Up, running and ready for action!');
database.js
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var connect = function (databaseName, callback) {
var url = 'mongodb://localhost:27017/' + databaseName;
MongoClient.connect(url, (error, database)=> {
assert.equal(null, error);
console.log("Successfully connected to MongoDB instance!");
callback(database);
});
};
exports.find = (databaseName, collectionName, query)=> {
connect(databaseName, (database)=> {
var collection = database.collection(collectionName);
collection.find(JSON.parse(query)).toArray(
(err, documents)=> {
assert.equal(err, null);
console.log("MongoDB returned the following documents:");
console.dir(documents);
database.close();
})
})
};
发布于 2020-02-07 20:49:42
@Arslan你能用res.json({documents : documents})代替res.end(JSON.stringify(Documents))吗?
如果它不能给出正确的答案,那么;
var document =JSON.Stringify(文档);res.json({documents : document})
发布于 2020-02-07 21:44:36
我通过调试代码找到了解决方案database.js中缺少一个回调函数存在两个问题
exports.find = (databaseName, collectionName, query,callBack)=> { //callback was missing
connect(databaseName, (database)=> {
var collection = database.collection(collectionName);
collection.find(JSON.parse(query)).toArray((err, documents)=> {
assert.equal(err, null);
callBack(documents); // callback was missing
database.close();
return; // return was missing
})
})
};
发布于 2020-02-10 17:26:21
你能详细解释一下你到底想在浏览器上显示什么吗?
https://stackoverflow.com/questions/60112390
复制相似问题