Node.js 连接MongoDB,并实现浏览器GET请求加参数

本文介绍如何使用Node.js和MongoDB实现一个简单的HTTP服务,通过GET请求获取数据库中的数据。主要内容包括设置Express服务器、连接MongoDB数据库、插入数据及查询数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近学习了Node.js,并且接触了MongoDB,因此想做一个浏览器访问一个http地址获取数据库里的数据的例子,本文使用的是Node.js作为接口

具体内容

Node.js要准备的东西

express模块,可以参考http://www.runoob.com/nodejs/nodejs-express-framework.html获取
mongodb模块,可以参考http://www.runoob.com/nodejs/nodejs-mongodb.html获取

代码片
  • 创建 express_demo.js文件
var express = require('express');
var utils = require('./utils');
var app = express();
var url = require('url');
var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/runoob';

app.use(express.static('public'));


//  /user 页面响应
app.get('/user', function (req, res) {

  //查询数据
  var selectData = function(db, callback) {
    //连接到表
    var collection = db.collection('site');
    //查询数据
    var params = url.parse(req.url, true).query;
    //从浏览器获得的参数
    var name = params['name'];  
    var whereStr = {};
    whereStr.name = name;
    collection.find(whereStr).toArray(function(err, result) {
      if(err)
      {
        console.log(err);
        return;
      }
      callback(result);
    });
  }

  MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    selectData(db, function(result) {
    //  console.log(result);
      if(utils.isEmptyObject(result)){
          res.end("name不存在");
      }else{
        res.end(JSON.stringify(result));
      }
      db.close();
    });
  });
})

var server = app.listen(8080,"0.0.0.0", function () {
  var host = server.address().address
  var port = server.address().port
  console.log("应用实例,访问地址为 http://%s:%s", host, port)

})

上面的代码有个

var utils = require('./utils');

这个是我写的一个判断JSON是否为空的函数,具体内容
utils.js文件


exports.isEmptyObject = function(e) {
    var t;
    for (t in e)
        return !1;
    return !0
}

其中exports代表该函数可被外部调用

  • 在MongDB中创建数据库并且插入数据
    mongodb.js
var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/runoob';
插入数据到表
var insertData = function(db, callback) {
    //连接到表 site
    var collection = db.collection('site');
    //插入数据
    var data = [{"name":"菜鸟教程","url":"www.runoob.com","likes":100},{"name":"菜鸟工具","url":"c.runoob.com","likes":100}];
    collection.insert(data, function(err, result) {
        if(err)
        {
            console.log('Error:'+ err);
            return;
        }
        callback(result);
    });
}

MongoClient.connect(DB_CONN_STR, function(err, db) {
    console.log("连接成功!");
    insertData(db, function(result) {
        console.log(result);
        db.close();
    });
});
  • 开启express_demo.js脚本,在node.js终端中输入
   node  express_demo.js

这里写图片描述
* get测试工具使用postman
这里写图片描述

  • 结果
    这里写图片描述

这样就实现了使用node.js+mongoDB实现http请求获取数据库内容的demo,学会了感觉很简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值