Nodejs Mongodb 服务器连接问题

编程入门 行业动态 更新时间:2024-10-05 19:15:25

Nodejs Mongodb <a href=https://www.elefans.com/category/jswz/34/1771423.html style=服务器连接问题"/>

Nodejs Mongodb 服务器连接问题

我正在尝试使用 Nodejs - express 连接到 mongodb 数据库。该程序运行正常,我正在获取查询和 html 输出。但是当我再次查询时,程序没有连接到 mongodb 数据库。我必须再次运行程序(节点命令)才能获得连接。我希望每次给出后查询时都发出命令。

下面是代码

Server.js

const app = express();

const bodyParser = require('body-parser');
let Util = require('./files/modules/acessdb');


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

app.get('/',(req,res)=>{
    
    res.send("Working");
});

app.post('/getinput',(req,res)=>{
    console.log("Options ="+req.body.depart);

    let data = Util.getdata(req.body.depart,res);
    console.log("Data = ",data);

   // res.send(JSON.stringify(data));
});

const server = app.listen(8000,()=>{
    let host=server.address().address;
    let port = server.address().port;
    console.log("Server running at "+host+":"+port);
});

accessdb.js


function getdata(data,res){
    conn.stconnect((err)=>{
        if(err)
        throw err;
    });

    let html = "<html> <head> </head> <body> <table>";

    const db = conn.getdb;
    const collection = db().collection('Students');
    console.log("Server entered");
        val = async ()=>{
            try{
            let file = await collection.find({"Department":data}).toArray()
            console.log("data is ",file);

            console.log("Data here : ",data);

            console.log("Type = "+file.length);

            for(let i =0;i<file.length;i++){

               html+="<tr> <td> "+file[i].Name+"</td><td>"+file[i].Department+"</td><td>"+file[i].Semester;
               html+="</td></tr>";
                console.log("FIle :"+file[i].Name)

            }
            html+="</table></body>";

            

            res.send(html);
        }
        catch(e){
            throw e;
        }
        finally{
            conn.disconnect();
        }
    }
   let value = val();
}
module.exports = {getdata};

connect.js

const url = 'mongodb://127.0.0.1:27017/';
let client;
let dbname = 'College';
var db;

async function stconnect(callback){ 
     
    client = new MongoClient(url);
    await client.connect();
     db= client.db(dbname);
    
}

const getdb = ()=> db;

const disconnect = () =>client.close();

stconnect()
    .then(()=>{
        console.log("Server connected");
        return ;
    })
    .catch(console.error)
    .finally(()=>{
    });

module.exports ={stconnect,getdb,disconnect};```
回答如下:

在您的

accessdb.js
文件中,在 try-catch 块中,删除
finally
部分。

try{
  ...
    }
    catch(e){
        throw e;
    }
 // remove the finally block
 let value = val();

成功执行

try-catch
块后,执行
finally
块,在您的情况下关闭数据库连接。

更多推荐

Nodejs Mongodb 服务器连接问题

本文发布于:2024-05-30 15:39:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770651.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:服务器   Nodejs   Mongodb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!