簡體   English   中英

MongoDB自動斷開連接,無法使用Node.js獲取記錄

[英]MongoDB getting disconnected automatically, not able to fetch records using Nodejs

我是NodeJS和MongoDB的新手。 我想從HTML中獲取用戶輸入,並作為查詢傳遞給MongoDB。 我已經按要求索引了MongoDB。 我堅持使用此代碼。 每當我運行server.js時,都會出現錯誤,MongoDB將自動斷開連接。 請幫我。

//user_query.js

var http = require('http');
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/newDB";
var express = require('express');
var app     = express();
var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true })); 

var varName, search;

var name = app.post('/product_search', function(req, res, callback) {
    res.send('Searching for "' + req.body.query + '".');
    search = req.body.query;
    callback(search);
});

app.listen(8080, function() {
  console.log('Server running at http://127.0.0.1:8080/');
});

module.exports = { varName: search };


//search.js
var http = require('http');
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/newDB";
var express = require('express');
var app     = express();
var user_query = require('./user_query');

//console.log("Hello: "+user_query.varName);

MongoClient.connect(url, function(err, db) {
    if (err) throw err;

    db.collection("cellPhones").find({$text:{$search: user_query.varName}}).toArray(function(err, result) {
        if (err) throw err;     
        console.log(result);     
    });  
    db.close(); 
});`enter code here`

當您說出callback(search)時(基本上是next(search)您最終將在路由器中使用處理程序,並將一些數據傳遞給中間件。

根據nodejs約定,回調中的第一個參數為-error。 因此,您要做的是-引發錯誤。 這是第一個問題。 因此,您應該這樣解決:

next(null, search);

然后,就您所選擇的這種方法(使用中間件)而言,您必須在某個地方添加為該查詢中間件提供服務,這將查詢數據庫並響應瀏覽器。 非常划痕(路由添加后):

app.use(function(err, req, res) {
  // query db
  // send result to the res.send();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM