数据库开发的步骤

数据库开发的步骤,第1张

前端开发者该如何设置数据库

最近有人问我,前端开发者保存用户数据最繁琐的方式是什么?所以我会解释如何让它成真。

设置数据库

首先,我们需要有一个数据库。可以通过流程mlab免费获得一个。注册后,在MongoDB的下表中点击New。我们将使用免费的沙盒数据。

创建数据库后,我们需要创建一个帐户,以便我们可以停止自我验证。点击数据库标题,然后点击用户,并添加数据库用户。记下您将来选择使用的用户名和代码。

在数据库页面的顶部,您可以看到一个MongoDBURI。那是我们数据库的网站。该数据库的URI对应于网页的URL。一般来说,MongoDB的URI如下:

MongoDB://<;dbuser>:<dbpassword>@<主机>:<端口>/<;dbname>

例如,我的:

MongoDB://admin:superscretpassword@ds111885.mlab.com:11885/medium

设置服务器

我们将在后端利用节点。你可以点击那里克隆我正在做的项目Glitch,省去你设置它的麻烦。

我们从server.js开始,如下所示:

//初始化项目

constexpress=require('express');//我们将用来处理请求的库

constapp=express();//实例化express

app.use(require("cors")())//允许跨域请求

app.use(require('body-parser')。json())//自动将请求数据解析到json

//基本路线

app.get("/",函数(请求,响应){

response.send("TODO")//始终以字符串"TODO"进行响应

});

//基本路线

app.post("/",函数(请求,响应){

response.send("TODO")//始终以字符串"TODO"进行响应

});

app.put("/",函数(请求,响应){

response.send("TODO")//始终以字符串"TODO"进行响应

});

//侦听请求,需要process.env.PORT是因为

//我们使用了glitch,否则你可以写80或者其他什么

varlistener=app.listen(process.env.port,function(){

console.log('您的应用程序正在侦听端口'+listener.address()。港口);

});

我们最终使用了Express——这个库用来处理来自我们服务器的请求。

我们需要使用(require(cors))来允许跨域恳求。跨域名招揽是从一个域名的网站招揽另一个域名下的服务。

App.use(require('body-parser')。JSON())就是主动为我们把请求数据解析成JSON。

然后我们背诵get的目的是通知要处置的路由,以及回调来处置请求。也就是说,只要有人在网站中打开页面,抗辩就会被通知给谁回电处置。域名是隐藏的,所以如果你的域名是http://shiny-koala.glitch.com,路由/about是http://shiny-koala.glitch.com/about.

在同一天,通过“打开页面”,我的意思是有一个通过GET接收服务的请求。HTTP方法只是请求服务的一个例子,我们将只使用这些方法:

GET方法用于从服务器获取资金。比如脸书打开的时候,需要卸载HTML,CSS,JavaScript。

POST方法用于在服务器上创建资本。就像在脸书上发布内容一样,在发布内容中写入的信息可以通过POST的过程收集到脸书服务器上。

PUT方法用于更新服务器上的大写。例如,当您更正已发布的内容时,您可以使用PUT请求脸书服务器接收更正后的内容。

app的东西和方法。贴吧app。PUT与app类似。但是有足够的理由使用post而不是put来代替GET。

路由

当您停止服务器开发时,您需要停止一些测试。你可以使用简单的网站休息测试测试大概失眠用法语运行HTTP恳求。

单击“显示”按钮查看Glitch使用的法语URL。

到目前为止,我们只使用了路线/。但是,如果我们认为不同的用户存储不同的信息,我们需要为不同的用户分配不同的路由。

比如:/ZaninAndreaBattle/JohnGreen

现在变脸了:

我们不能停止编码每条路线,因为这是一个可扩展的方法。我们需要的是路由参数。接下来,我们只对一个路由进行编码:/:user

冒号是表示捕捉任何开头的路径,只包含字符和数字。

以下示例显示了:

/zaninandrea能抓到

/Johnny45能抓到。

/alex/score未能捕获。

我们能够在变量request.params.user中检索用户

//基本路线

app.get("/:user",函数(请求,响应){

response.send(请求.参数.用户)

});

//基本路线

app.post("/:user",函数(请求,响应){

response.send(请求.参数.用户)

});

//基本路线

app.put("/:user",函数(请求,响应){

response.send(请求.参数.用户)

});

现在,服务器可以回显每个查询并显示查询的用户名。

后台数据库清理数据

我们知道user是谁,现在想存储一些关于他的疑点。

为了查询数据库,我们将使用mongodb库。您可以通过以下两种方式安装它:

npm安装mongodb-保存

大概如果使用Glitch,可以切换到package.json文件,点击Addpackage按钮。

我们卸载mongodb库,然后将MongoDBURI存储在一个变量中:

constMongoDB=require('MongoDB');//加载mongodb

consturi=process.env.uri;

URI是一个敏感的信息——这就是你需要满足数据库。最好把URI放在一个。env文件中的信息。env文件对其他人是不可见的。

URI=mongodb://admin:PASSWORD@ds111885.mlab.com:11885/medium

Glitch会主动从。env文件添加到process.env变量中。

数据库的邻接是同步 *** 作,所以我们需要将所有服务器设置打包在回调中,如下所示:

mongodb。MongoClient.connect(uri,function(err,db){

//基本路线

app.get("/:user",函数(请求,响应){

response.send(请求.参数.用户)

});

//基本路线

app.post("/:user",函数(请求,响应){

response.send(请求.参数.用户)

});

//基本路线

app.put("/:user",函数(请求,响应){

response.send(请求.参数.用户)

});

//侦听请求,需要process.env.PORT是因为

//我们使用了glitch,否则你可以写80或者其他什么

varlistener=app.listen(process.env.port,function(){

console.log('您的应用程序正在侦听端口'+listener.address()。港口);

});

})

数据库是根据汇流构造的,汇流包含文档(基本是JSON文件)。这样我们就可以在用户旁边见面了(我们第一次见面的时候分公司就成立了)。

mongodb。MongoClient.connect(uri,function(err,db){

constcollection=db.collection('用户')

//...

}

首先,让我们 *** 纵邮政路线。当我们第一次添加用户数据时,将使用此路线。然后我们需要使用PUT路由来更新数据。

app.post("/:user",函数(请求,响应){

//在服务器上插入新文档

collection.insertOne({...request.body,user:request.params.user},function(err,r){

如果(错误){

response.send("出现错误")

}否则{

response.send("一切都好")

}

})

});

Collection.insertOne方法将新文档添加到收集器中。在这个例子中,每个用户都有自己的文档。

{...request.body,user:request.params.user} *** 纵扩展 *** 作符合并流程请求者和用户通过流程URL提供的数据。

在这里存储正在收集的文档是 *** 作的结果。

第二个参数是回调,它只是告诉用户 *** 作结果。

从数据库中获取数据

我们在服务器上存储了一些数据,现在我们想从服务器上读取这些数据。我们使用GET方法来获取它。

app.get("/:user",函数(请求,响应){

collection.find({user:request.params.user})。toArray(function(err,docs){

如果(错误){

response.send("出现错误")

}否则{

response.send(文档)

}

})

});

此时,第一个参数是一个过滤器,用于向数据库报告,只接收用户的属性信息文档给我们。

用户信息以数组的形式保存在文档中,所以文档中实际上没有一行保存用户的属性信息。我们必须阻止这种情况发生。

它以文档数组的形式返回给用户,因此实际上可以有多个具有该用户属性的文档。我们必须确保这种情况不会发生。

更新数据库数据

首先,通过PUT方法更新现有的用户信息是非常重要的。

//基本路线

app.put("/:user",函数(请求,响应){

collection.updateone({user:request.params.user},

{$set:{...request.body,user:request.params.user}},

函数(err,r){

如果(错误){

response.send("出现错误")

}否则{

response.send("一切都好")

}

})

});

第一个参数是一个过滤器,GET方法的第一个参数也类似。

第二个参数是更新文档的请求——您可以从那里获得关于它的更多信息。在我们的示例中,我们的报告数据库将用户报告的数据与现有数据合并。

但是要小心,因为嵌套的参数将被交换而不是合并。

最初

关于数据库战争的后台编程,那只是个开始,但是足够你开始一个个人项目了。

以后可以写一些关于身份验证的文章。在此之前,请不要在里面存储一些敏感数据。

你可以修复的完美项目就在那里。你需要有自己的数据库。如果没有机会创建,请回到数据库设置部门。

如果你觉得借用那篇文章没有错,请给它点掌声,让更多人看到。打开!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/768673.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-02
下一篇2022-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存