我是NodeJS和MongoDB的新手。我想从HTML获取用户输入并作为查询传递给MongoDB。根据要求我编制了MongoDB索引。我坚持使用这个代码。每当我运行server.js,我收到一个错误,MongoDB将自动断开连接。请帮帮我。MongoDB自动断开连接,无法使用Nodejs获取记录
//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`
请张贴的'user_query'文件 –
内容删除'db.close()'或至少它的地方“内” .toArray的'回调() '问题是在实际查询被执行或完成之前,“关闭”调用被“取消”。因此,将其放入回调中可确保在连接关闭之前返回结果。 '的console.log(结果); db.close()//把我放在这里; } //在这里删除db.close()# –
@BertrandMartel感谢您的回复。第一个代码片段是user_query.js ... –