web前端开发人员如何搭建数据库?供参考

上传人:m**** 文档编号:508460733 上传时间:2024-01-11 格式:DOC 页数:9 大小:29KB
返回 下载 相关 举报
web前端开发人员如何搭建数据库?供参考_第1页
第1页 / 共9页
web前端开发人员如何搭建数据库?供参考_第2页
第2页 / 共9页
web前端开发人员如何搭建数据库?供参考_第3页
第3页 / 共9页
web前端开发人员如何搭建数据库?供参考_第4页
第4页 / 共9页
web前端开发人员如何搭建数据库?供参考_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《web前端开发人员如何搭建数据库?供参考》由会员分享,可在线阅读,更多相关《web前端开发人员如何搭建数据库?供参考(9页珍藏版)》请在金锄头文库上搜索。

1、搭建数据库首先,要实际拥有一个数据库。可以去mlab网站找一个免费的。注册好后,在MongoDB部署(Deployments)栏里点击创建新数据库(create new)。创建出来的这个沙盒数据库是不用钱的,所以就用这个。创建数据库后,要建一个帐户,这样就能验证自己的身份。点击数据库的名字,然后点用户(users),再点添加数据库用户(add database user)。把选用的用户名和密码写下来,之后要用。在数据库页面顶端,应该可以看到MongoDB的地址。这是数据库的页面地址,就像一个网页地址一样。按惯例,MongoDB地址格式如下:mongodb:/:/比如,我的数据库是:mongod

2、b:/admin:superSecretP:11885/medium搭建服务器服务器后台我们要用Node平台。想跳过搭建过程的话,可以克隆我在Glitch上的项目,点击这里看一下我写的server.js启动文件:/ 初始化项目const express = require(express);/ 需要导入处理请求的express库const app = express();/ 实例化express库app.use(require(cors)()/ 允许跨域请求app.use(require(body-parser).json() / 自动解析请求数据,并转成JSON/ 基本路径app.get(/

3、, function (request, response) response.send(TODO) / 所有的请求都以 一个字符串TODO来响应);/ 基本路径app.post(/, function (request, response) response.send(TODO) / 所有的请求都以 一个字符串TODO来响应);app.put(/, function (request, response) response.send(TODO) / 所有的请求都以 一个字符串TODO来响应);/ 因为我们用的是glitch的网络域, 所以监听请求的端口要设成 process.env.PORT

4、。/ 否则,端口可以设成80或者别的什么。var listener = app.listen (process.env.PORT, function () console.log (Your app is listening on port + listener.address().port););先导入express库,这个库用来处理发送到服务器的请求。跨域请求是从一个域内的网站发送到另一个域内的服务器去的请求,要用use(require(cors)来允许之种请求。app.use(require(body-parser).json()这一句自动解析请求,转成JSON。然后我们为get方法输入

5、一个处理路径和处理用的回调函数。也就是说,无论何时,打开网站的/路径页面时,请求就会由那个回调函数处理。基本域名是隐含在其中的,所以以http:/shiny-为域名的话,路径/about指的就是http:/shiny- test test,很方便。或者也可以用Insomnia程序。要查看这个Glitch网站程序的地址,点击显示(show)按钮。目前为止,我们都只用了/路径。但我们要的是把不同用户的信息存储起来,所以需要为每个用户设置一个不同的路径。 比如:/ZaninAndrea和/JohnGreen路径。那么就产生了一个问题:不可能把所有的路径一个个都编写出来,这种方法扩展性太差。我们需要的

6、是路径参数(route parameters), 这样只要写一个路径:/:user即可。这里面的冒号告诉Express库要捕捉任何开始字符为/,并且接下来只由数字字母组成的路径。举些例子:/ZaninAndrea要捕捉/Johnny45要捕捉/alex/score不捕捉然后,user的值可以在request.params.user变量里取得。/ 基本路径app.get(/:user, function(request, response) response.send(request.params.user) );/ 基本路径app.post(/:user,function (request,

7、response) response.send(request.params.user) );/ 基本路径app.put(/:user,function (request, response) response.send(request.params.user) );现在,所有带用户名的查询请求,服务器都能够以用户名回应了。为数据库加入数据我们知道用户是谁了,现在要把用户信息存储起来。查询数据库,我们会用mongodb库。可以用下面两种方法之一安装:npm install mongodb -save如果用的是Glitch,也可以去package.json文件,点击添加软件包(Add packa

8、ge)按钮。让我们加载这个库,然后把MongoDB地址保存在一个变量里:const mongodb = require(mongodb);/ 加载mongodb库const uri = process.env.URI;这个地址属于敏感信息,因为只要有了它就能访问数据库了。最好把这个地址放在一个.env文件里,这样别人就看不见了。URI=mongodb:/admin:PASSWORD:11885/mediumGlitch会自动从.env文件中把这个变量加载到process.env变量中去。连接数据库是一种异步操作,所以我们要把服务器搭建步骤包裹在一个回调函数里,像这样:mongodb.Mongo

9、Client.connect(uri, function(err, db) / 基本路径 app.get(/:user,function (request, response) response.send(request.params.user) ); / 基本路径 app.post(/:user,function (request, response) response.send(request.params.user) ); / 基本路径 app.put(/:user, function (request, response) response.send (request.params.u

10、ser) ); / 因为我们用的是glitch的网络域, 所以监听请求的端口要设成 process.env.PORT。 / 否则,端口可以设成80或者别的什么。 var listener = app.listen(process.env.PORT, function () console.log( Your app is listening on port + listener.address().port); );)数据库以集合方式组织起来,集合中又包含了文档,文档基本就是JSON文件。所以让我们连接到用户user这个集合上去,第一次访问时,这个集合会自己创建。mongodb.MongoCl

11、ient.connect(uri, function(err, db) const collection =db.collection(users) / .首先,我们要处理POST方法的路径,用这个方法来把一个新用户的数据加进去。然后,我们要用PUT方法的路径来更新。 app.post(/:user, function (request, response) / 在服务器上插入一个新的文档 collection.insertOne ( .request.body, user : request.params.user , function (err, r) if (err) response.

12、send (An error occured) else response.send(All well) ) );集合的collection.insertOne插入方法可以给集合加入一个新文档。在我们的例子里,每个用户都有一个独立的文档。 .request.body, user : request.params.user 参数利用展开操作符将请求主体内容中的数据与从URL获取的用户数据合并。结果就是文档保存在了集合里。第二个参数是一个回调函数,只是通知用户操作的结果。从数据库中获取数据既然服务器上已经有了些数据,那么我们就想要读取数据。我们用GET方法来读取。app.get(/:user, f

13、unction(request, response) collection.find(user : request.params.user ).toArray(function (err, docs) if (err) response.send(An error occured) else response.send(docs) );这次,第一个参数是一个过滤器,告诉数据库只把符合用户属性的文档发回来。返回到用户的文档是一个列表,因为理论上可能会不只有一个文档拥有那个用户的属性。要不要保证只返回一个,取决于我们自己。更新数据库的数据最后,PUT方法可以用来更新已经存在的用户数据。 / 基本路径 app.put(/:user, function (request, response) collection.updateOne( user : request.params.user , $

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号