美文网首页
MongoDB增删查改案例

MongoDB增删查改案例

作者: 笔记鼠 | 来源:发表于2019-12-25 15:48 被阅读0次
    database文件夹里面新建user文件夹,新建app.js文件 新建服务器,监听并且响应。 当前服务器启动成功 引入mongoose,连接数据库,如果连接成功返回then后面的 数据库连接成功了 这个参数添加不添加都无所谓,但是不想看到这个提示信息,所以把这个参数添加到connect的第二个参数里面。 创建playground数据库 数据库连接成功,而且没有提示信息了 用mongoose。schema方法创建了集合规则,里面有name,age,password,email,hobbies。type,数据类型是string,require必须写的字段,minlength最小长度,maxlength最大长度。min数值最小范文,max:数值最大范围。hobbies是个数组,【】里面是string。说明里面都是字符串。 创建集合user,去找一个现有的集合导入到user中。 ls就可以查看当前database目录下的文件列表 mongimport -d导入到哪个数据库 -c 导入到哪个集合 -file 导入哪个文件 连接了localhost 导入了6个文件,  compass中多了一个playground的文件,里面有user文件,里面有导入的数据。 实现路由功能,增加了4 5 6个点 要弄地址,导入了url模块,14行 路由方式,要获得请求方式和请求地址,事先准备了list.htlm页面。这里要把访问的页面呈现出来,首先,method方法返回的两个值,get和post就是获得或者输出(添加数据,修改数据),if判断,如果method返回get,就让pathname地址给到list这个地址,就是网页呈现的地址。然后用一个变量list接受一个字符串‘’,括号里面是复制的我们编写的htlm码的所有复制代码,此处被折叠了。然后用res.end返回list变量,就根据用户的list地址访问到了我们写的htlm页面了。 55行 users集合的find方法去拿到之前传的用户里面的数据 await 就是异步函数里面才能用的 用一个变量users接收返回的信息 刷新这个 命令行中数据已经查询成功了,然后要将数据和htlm进行拼接。这时候,要把list的引号改为反引号,因为要进行拼接了! 数据库中有多少个数据,都要生成多少个tr,最后把数据写到td里面。先把不包括tr的上门那一堆代码重新复制粘贴到list反引号里面。 后面的用list+=··的方式来添加 从talbe这里复制 粘贴到这里 而tr要在list和list+=之间拼接 就是这 对users里面的数据进行循环操作,user里面都是一个个的用户信息数组,就是item,因此里面会有。name等属性 用${}拼接 hobbies这块也是数组,所以要处理一下,所以又要用到循环,又得弄个list+=把下面td的内容填好,然后在中间再加内容 又一个hobbies里面的foreach循环,然后把静态数据删除 通过点击实现用户信息添加 提前准备了add.htlm放到let add里面,就是用add来接收addhtlm的代码值,看里面判断条件,if是list就去list那里,ifpathname是add就去add页面那里。 通过res.end(add)就把add给返回去了 在浏览器中访问/add就进入了add页面 122行代码  把form的 method指定为post 睁大眼睛看,这里要name改了,这就是为什么之前name属性是name了,因为name的名字就是为了和数据库里面的相一致,才能对应找到存储的地方。name=‘password’ name=‘email’ hobbies这里所有复选框要编一个组。 牛逼了吧,所有都添加了一个同样的组,hobbies。 要弄post属性了,现在现在122行处添加一个action属性 那么当用户提交表单的时候,就找到post这里来了。 设置一个变量formdata来接收post的数据,data会不断的传,param就是传过来的值,fordata+=param,就可以把传来的值拼接,然后在end那里返回 点一下添加用户 参数接收成功了,但是我们要把他们转化成对象格式,引入querystring模块 186行 用querysting里面的parse方法转换formdata数据,输出看看 变成对象模式了 这信息量太大了。第一,用user变量接受转换成的结果,就是上面的对象模式。然后调用user下面的create方法将数据添加到数据库中,刚好接受过了的user也是对象模式,所以就可以作为User。create的变量,await 同步函数,然后添加成功后res.end()让用户跳转到list地址上。res.writeHead是啥?最后要添加async ,因为await是必须出现在 添加成功了。 104行 增加了modify路由并且拿到了item_id get里面添加modify路由,然后由于是和add路由的页面一样的,所以就去add路由里面把 把这块复制,然后粘贴到modify下面,把 191 把添加用户改成修改用户 res.end改成modify 56行,添加了query参数,和true这样query就是对象类型,里面包含id属性,就可以获得修改的id 180  用user去接受query的id,然后返回user看看有没有查找到 用户信息被查询到了 180 改成findOne就可以找到一个对象,注意观察 注意观察find是【{}】而findOne是{} 然后拼接进去,用value值 声明一个爱好数组,把所有的爱好都写进去 然后又是拼接和遍历,用include属性看看里面有没有,有的话就把lable标签放进去,记住之前的lable标签都删掉了,现在是动态的生成lable标签,然后,把lable里面的input里面的check属性改为checked,说明只要里面include爱好了,就把选项改为勾选状态。 else的话就把checked属性去掉 把input的value值改成当前的循环项 14 15 16 197行  action改成modify 把add的时候编号的代码整体复制到modify那里,然后改一下 把creat方法改成updataOne 197 拿到modify的id 修改成功 105 建设一个remove路由 1、为删除按钮添加链接以及请求参数  2、获得id,然后remove id的选项,返回list页   模块分离,先把数据库的拿出来 user--module里面index。js app.js在require回来这些拿出去的文件

    后面用模板引擎来解决字符串拼接

    相关文章

      网友评论

          本文标题:MongoDB增删查改案例

          本文链接:https://www.haomeiwen.com/subject/klfcoctx.html