手机版

将Node.js连接到MongoDB数据库时出现的问题

时间:2021-09-06 来源:互联网 编辑:宝哥软件园 浏览:

NoSQL的代表,MongoDB,最近很受欢迎。虽然有些功能不完善,但不影响它的火力。

Node.js是一种用JavaScript编写的js语言,可以在服务器端运行。

那么,两者会碰撞出怎样的火花呢?

今天,我将介绍一个简单的例子(在本地创建一个新的数据库文件,并将其内容显示到浏览器表单中);

1.准备部分:需要的IDE工具有WebStorm、MongoDB、Node.js.

1)首先下载MongoDB,配置环境变量(路径指向安装目录)

第一步:建立MongoDB服务输入命令mongod.exe-bind _ ip127.0.0.1(本地ip地址)-log path ' d : \ M _ log \ MongoDB . log(日志文件位置)'-logappend-dbpath 'd: \ M_DB(数据表所在的位置)'-端口27017(端口号)-service name ' Mongod '-service displayname ' Mongods '-安装

第二步:在命令行输入mongo进入mongoDB环境;输入use dbtest(使用dbtest作为数据库,如果不使用,将自动创建一个新的数据库);

输入db;createcollection('表名')来创建表;

输入db。表名。插入({'key1':'value1 ',' key 2 ' : ' value 2 ' });集合创建一条数据,这不是一个严格的数据库,所以允许存在多个不同的键;

输入db。表名。find();检查表格中的数据

2)下一步是下载Node.js,它会自动包含一个包管理工具npm。

3)使用WebStorm创建一个新的Node.js Express APP项目。

4)从WebStorm命令行进入node_moudles目录(cd node_moudles),尽可能下载该目录下的模块。

进入npm安装mongodb,下载Node.js连接MongoDB所需的模块。

5)在自己的命令行工具中输入npm安装ejs。下载ejs模板;

2.代码部分:

1)在新项目目录下找到app.js,用ejs模板替换模板

//view engine setup app . set(' views ',path . join(_ dirname,' views ');app.set('view engine ',' ejs ');2)如果app.js没有监听端口,在最后加入

app . listen(3000);3)在项目的views文件夹下创建三个新的用于测试的ejs文件(将新的html文件的后缀改为。ejs)

index1.ejs

!DOCTYPE html html head title my index/title link rel='样式表' href='/样式表/style . CSS '/head body h1 hello World/h1 pWelcome to/P pa href=' log in ' rel=' external no follow ' log in/a/P/body/html log in . ejs[html]视图纯文本!DOCTYPE html html head title my log in/title link rel='样式表' href='/样式表/style . CSS '/head body h1 hello World/h1 pwel come to/p form action=' u center ' method=' post ' p spanname :/span br input id=' name ' name=' name ' type=' text '/p spanpassword :/span br input id=' password ' name=' password ' type=' password ' type=' password '/p pinput type=' password ' '

!DOCTYPE html html head titlemy检查表/title link rel='样式表' href='/样式表/style . CSS '/head body %=datas % br/%=reason % br/% for(var I=0;idatalist.lengthi ){% ol li%=datalist[i]。_id%/li li %=datalist[i]。name % %=datalist[i]。like% /li li %=datalist[i]。密码% %=datalist[i]。age% %=datalist[i]。info% /li /ol %}% /body /html 4)在“路由”文件夹下的index.js中进行以下更改

var express=require(' express ');定义变量路由器快递.路由器();/* var user=require('./bin/app2 ').用户;*/var mongo=require(' MongoDB ');//加载mogodb模块var DB _ CONN _ STR=' MongoDB ://localhost :27017/test DB 1 ';//数据库的地址/*获取主页。处理请求信息*/router.get('/',function (req,res,next) { res.render('index1 ',{ title : ' index 1 ' });});/* login */router.get('/login ',函数(req,res) { res.render('login ',{ title : ' log in ' });});/*验证用户是否存在*/var selectData=函数(数据库、字符串、回调){ //查找MongoDB是否含有相应的集合//连接到表var集合2=db。集合('用户');collection2.find(str).toArray(函数(错误,结果){ if(错误){ console。日志('错误: ' err);返回;}回调(结果);});} router.post('/ucenter ',函数(请求,决议){ //为验证请求添加路由var query={ name : req。尸体。姓名,密码:请求。尸体。密码};mongo.connect(DB_CONN_STR,function (err,db) { console.log('连接成功!');选择数据(数据库,查询,函数(结果){ if (result!=0){控制台。日志(查询。名称' :登陆成功新日期());res.render('ucenter ',{ title : ' u center ' });//跳转到指定页面} else { console。日志(查询。名称' :登陆失败新日期());RES . redirect('/');//返回当前页面} db。close();}) });});/*查找所有数据*/router.get('/checkall ',函数{ mongo.connect,函数(错误,数据库){ var集合=数据库。集合('用户');collection.find().toArray(函数(错误,结果){ if(错误){ console。日志(' ERROR ' err);RES . redirect('/');返回;} console.log(结果);res.render('checkinfo ',{ datas: ' Hello Noder ',datalist:result,reason: '由于你长得丑,服务器拒绝了你这次的访问' });db。close();});});})模块。导出=路由器;3.废话这么多,重要出结果了

1)先看看MongoDB数据表里的数据

2)登录界面

3)登陆成功

4)网页返回全部数据

以上所述是小编给大家介绍的Node.js连接MongoDB数据库产生的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

版权声明:将Node.js连接到MongoDB数据库时出现的问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。