私は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`
( 'db.closeを削除user_query'ファイル –
'の内容を投稿してください) 'または少なくとも場所それ.toArray'のコールバック「内の」() '問題は、実際のクエリが実行または終了する前に「閉じる」呼び出しが「前に」作成されることです。コールバックに入れると、接続が閉じられる前に結果が返されます。 'console.log(result); db.close()//ここに入れてください。 } //ここでdb.close()を削除してください。 –
@BertrandMartel返信ありがとうございます。最初のコードスニペットはuser_query.jsです。 –