ajax +node.js+mongodb

1.建立 ajax-mongo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div>ajax</div>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script>
function test(){
    $.ajax(
        {
            url:"/getdata",
            type:'get',
            dataType:"json",
            success:function(data){
                
                console.log("ok");
                console.log(data)
            },
            error:function(error){
                console.log(error)
            }
            
        })
    
}
test()
</script>

</body>
</html>

2.新建test.js


var http=require("http");
var fs=require("fs");
http.createServer(function (req,res) {
    
   console.log(req.url)
   //匹配路由,没有if和else if匹配路由会出现同源策略限制
    if(req.url=='/'){
        fs.readFile("ajax-mongo.html",'utf-8',function(err,data)
            res.end(data);    
            });
       
    }
    else if(req.url=='/getdata'){
        var MongoClient = require('mongodb').MongoClient;
            var url = 'mongodb://localhost:27017/';
            MongoClient.connect(url, { useNewUrlParser: true }, function (err, db) {
                if (err) throw err;
                var dbase = db.db("runoob");
                // var myobj={name:"菜鸟教程",url:"www.runoob"};
                // dbase.collection('site').insert(myobj,function(err,res){
                //     console.log("success")
                //     db.close()
                // })
                dbase.collection('site').find({}).toArray(function (err, data) {
                    if (err) throw err;
                        // data为object,需要用stringify将js值(对象,数组)转换为string,
                        // argument must be one of type string or Buffer
                        console.log(data)
                    res.end(JSON.stringify(data)); 
                    console.log(typeof(JSON.stringify(data)))//string
                    db.close();
                
                })
            });   
    }
   
    

    

}).listen(6100,function(){
    console.log("start")
});


根据自己理解:6100端口开启,访问http://localhost:6100,后台路由匹配 if 条件,fs读ajax-mongo.html得到的data返回给http://localhost:6100,即页面展示,页面中ajax中的url请求http://localhost:6100/getData,匹配后台test.js中的else if,然后mongodb中的数据返给ajax,请求成功输出data。

3.结果如下:
在这里插入图片描述

ajax-mongo.html页面是一次请求,请求地址是http://localhost:6100/
ajax请求接口(test.js)也是一次http请求,请求地址可以是http://localhost:6100/getData

if和else if的路由可以随便写,只要和ajax-mongo.html和其中ajax请求的路由相匹配即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章