首页 > 解决方案 > 由于 MongoDB,Nodejs 无法调用多个 Web 应用程序实例

问题描述

我正在运行 Nodejs Web 应用程序,该应用程序基于用户请求 - 将调用 MongoDB,但在任何时候我们都只能打开一个页面实例和进程,如果我们发出另一个请求,它会失败并出现以下错误:

我们发现问题是由于 Mongodb 连接,我们的应用程序无法处理多个 mongo 请求。如果多个用户请求主页,我们会看到此错误。我们使用命令启动应用程序:“nodejs bin/www” 感觉我们在处理 Mongo 请求时缺少一些非常基本的东西。请建议。关于如何处理多个请求的任何输入 - 使用带有 mongodB 的节点 js 进行进程调用?

未找到 404 错误:未在 c:\app\test\app.js:129:13 at Layer.handle [as handle_request] (c:\app\test\node_modules\express\lib\router\layer.js: 95:5) 在 trim_prefix (c:\app\test\node_modules\express\lib\router\index.js:312:13) 在 c:\app\test\node_modules\express\lib\router\index.js: 280:7 在 Function.process_params (c:\app\test\node_modules\express\lib\router\index.js:330:12) 在下一个 (c:\app\test\node_modules\express\lib\router\index .js:271:10) 在 IncomingForm 的 form.parse (c:\app\test\node_modules\express-formidable\lib\middleware.js:17:7) 中。(c:\app\test\node_modules\formidable\lib\incoming_form.js:107:9) 在 emitNone (events.js:111:20) 在 IncomingForm.emit (events.js:208:7)

bin/www(文件)

#!/usr/bin/env node
/**
 * Module dependencies.
 */
var app = require('../app');
var config = require('../config');
var MongoClient = require('mongodb').MongoClient;
var debug = require('debug')('hornbill:server');
var http = require('http');
var assert = require('assert');
/**
 * Get port from environment and store in Express.
 */
var port = normalizePort(process.env.PORT || '5007');
app.set('port', port);
/**
 * Create HTTP server.
 */
var server = http.createServer(app);
/**
 * Listen on provided port, on all network interfaces.
 */
MongoClient.connect(config.mongo_url, {
  poolSize: 20
},function(err, db) {
    assert.equal(null, err);
    app.locals.mongo = db.db(config.mongo_db);
    server.listen(port);
    console.log("inside app.js",app.locals.mongo.listCollections());
    //db.close();
    //module.exports.mongo=db;     
    }
);
//server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
server.timeout = 1000 * 60 * 10;

路线/home.js:

var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
    console.log(process.cwd());
        const db = req.app.locals.mongo;
    db.listCollections({}).toArray(function(err, collInfos) {
              try {
                   res.render('home',{collection:collInfos});
                 }
              catch(err){
                 res.end();
                 console.log(err)}
                });
});
module.exports = router; 

标签: node.jspython-3.xmongodb

解决方案


推荐阅读