javascript - Node.js 上的简单服务器

标签 javascript node.js mongodb

大家好:)我的问题是response.vrite () 不起作用 为什么 ? 还有一个问题。每次启动/升级页面都会调用db.open?

var http = require("http");
var Db = require ("mongodb").Db;
var Server = require("mongodb").Server;
function start () {
'use strict';
function onRequest (request, response) {
    'use strict';
    var db = new Db ("TestApp", new Server ("127.0.0.1", 27017, {}));
    response.writeHead(200, {"Content-Type": "application/json", "Access-Control-Allow-Origin": "*"});
    db.open (function (err, db, response) {
        db.collection ('ObjectCollection', function (err, collection) {
            collection.find().toArray (function (err, docs) {
                console.log (docs);
                response.write(JSON.stringify(docs));
            });
        });
    });
    response.end();
}

http.createServer(onRequest).listen(8080);
console.log ('Server has started...')
}exports.start = start;

最佳答案

您在 response.write 之前调用 response.end。将 response.end 调用移动到回调中,如下所示:

var http = require("http");
var Db = require ("mongodb").Db;
var Server = require("mongodb").Server;
function start () {
'use strict';
function onRequest (request, response) {
    'use strict';
    var db = new Db ("TestApp", new Server ("127.0.0.1", 27017, {}));
    response.writeHead(200, {"Content-Type": "application/json", "Access-Control-Allow-Origin": "*"});
    db.open (function (err, db, response) {
        db.collection ('ObjectCollection', function (err, collection) {
            collection.find().toArray (function (err, docs) {
                console.log (docs);
                response.write(JSON.stringify(docs));
                response.end();
            });
        });
    });
}

http.createServer(onRequest).listen(8080);
console.log ('Server has started...')
}
exports.start = start;

是的,每个请求都会打开一个新的 Db 对象,因此最好在启动期间打开一次。

关于javascript - Node.js 上的简单服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666678/

相关文章:

node.js - 运行 grunt-responsive-images 任务时出错

javascript - 如何在链的早期解决 Promise?

c# - MongoDB 地理空间搜索和官方 C# 驱动程序

javascript - .done 或 .then 中的 Jasmine 测试方法

javascript - 如何在 Javascript 中获取二维数组的第二维的最小值/最大值?

javascript - 导出要与 require() 一起使用的 Node.js 类

java - Spring data MongoDB 检查字段是否包含文本

javascript - MongoDB |无法更新文档的 'role'

Javascript 在控制台上获取不应该的未定义数据

javascript - 在 HTML 元素中添加 JS 变量