GloryLin


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

数据存储

发表于 2017-10-01

数据存储

Node中的数据存储主要有

  • 内存和文件系统数据存储
  • 传统的关系型数据库存储
  • 非关系型数据库存储
  • 此次主要写的是非关系型数据库存储中的Redis,其余数据存储方式略谈

内存存储

内存存储的理想用途是存放少量经常使用的数据,这种数据的读取和写入都很快,但服务器和程序重启后数据就丢了;

基于文件的存储

用文件系统 fs 存放数据,存储在本地或服务器上,重启后数据还在;问题是:如果有两个用户同时修改了同一份文件,保存一个版本会覆盖另一个版本,导致其中一个用户数据丢失,所以对于多用户程序而言,不推荐使用基于文件的存储;

阅读全文 »

Mongoose才是正确答案

发表于 2017-09-19

mongoose是mongo衍生而来,比mongo更方便,我认为主要是体现在可以将表的信息封装起来

http://www.cnblogs.com/zhongweiv/p/mongoose.html#node_intro

  • 这是比较通俗易懂的教程,但被红莲鄙视了!所以此处写的是从红莲博客中关于mongoose代码领悟到一些皮毛
1
npm install mongoose --save

在当前文件夹中安装依赖

  • 由于是用到了封装,所以需要创建一个文件夹,db,这个文件夹的作用是将和数据库有关的操作都封装好,在以后的程序中就可以直接调用了。
阅读全文 »

Summer Summary

发表于 2017-08-12

后劲有点大

在写这篇总结的时候,我偷偷跑去看了他们几个总结,逸恬把我床照作为结尾,我……;瀚程的槽点有点多;健豪的逼格超高,还带音乐,炫得飞起来;浩楠估计和我差不多……

  • 话说在培训开始前,就很期待未来一个月会是怎样;果然,很值,大礼包!又胖了一圈。当然也在粤南红*学了些硬家伙,什么翻墙呀,搭服务器呀,都是装逼利器,这个月过得比过去一年还有价值,和大家在一起吹空调的日子过得就是快,回来几天了还没缓过来,毕竟热得飞起来。这个月的外卖比我一年吃得还多,诸位都是有钱人,还有总是见不着人的隐藏富婆momo;汉城说我和婉婷天天开车,这我华为荣耀就不服了,诸位都是一等一的老师傅,开起车来莫名其妙上180的;不得不说的还有我们外卖偶像男子天团,雷打不动的一饭三人组,一饭宿舍路上不孤单!讲真,大家中午不睡觉真的不妥,干不到大四的。

顺德游

高铁没有想象中那样炫,人又多又挤,差评!本次顺德游最大遗憾是没有去到清晖园,回想一下,好像去顺德就是吃了两三餐就回来了,什么都没有做……当然,除了晚上偷偷给郁卓过生日,我都感觉这B是知道了的,假意不知道,还有就是被逸恬加了一副扑克的UNO和狼人杀。哇,我生日也快到了呀,我也想要惊喜,我不要字符串,我会假装什么都不知道的!哇,越写越觉得亏耶,顺德这趟感觉什么回忆杀都没,想写点啥都写不了,电影是回科中看的,连最后的合照都是在商中的KFC,亏了亏了……

工作室日常

朝九晚十的生活是挺有趣的,有好几个早上是不用闹钟七点多就醒了的,叫醒我的不是闹钟,不是梦想,也不是没打完的码,是尿急!在工作室最有趣的是能和大家共(yi)同(qi)学(chi)习(shi)、共(chu)同(men)进(zuo)步(guai),前两个星期学习的力度还行,到第三个星期我就感觉有些懵逼不知道做些什么了,不是都懂了,是不知道从哪开始学,直至第四周开始做DailyCss,任务还不算重,和浩楠分工三四天就做完了,主要是忙对接,先是我和浩楠对接,然后和前端对接,边对接边测试,虽然最后没对接完。回来的时候,带了本书回来,原本计划着回来再接着学习socket.io的,现在看来,估计开学了还没开始……

DailyCss

发表于 2017-08-05

难点:置顶评论、数据库查询多重条件查询

查询Mongodb:

1
2
3
4
5
6
7
8
9
10
1. var whereStr = {"username":{$gte:""}};
//匹配>=""的username,即所有存在的username
2. var whereStr = {"id":id}
//简单的条件查询
3. var whereStr = {"id":id, "username":username}
var updateStr = {$set: {"status":"0"}};
var updateStr = {$set: {"time":time, "thing":thing}};
//查询符合条件的数据,更新一个数据或多个数据
4. var whereStr = {"$or":[{"username":"zxc110"}, {"username":"zxc111"}]}
//

跨域访问

1
2
3
4
5
6
7
8
9
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
//实现跨域访问,可以让请求来自不同的域,需要写在所有绑定的路由前

19th Day

发表于 2017-07-28

七牛qshell命令行

fput 以文件表单的方式上传一个文件
qshell fput <七牛空间名称> <保存的名称> <本地文件路径>
$ qshell fput glory qiniu.jpg /Users/jemy/Documents/qiniu.jpg
delete 删除七牛的空间里的文件
qshell delete
$ qshell delete glory qiniu.mp4

stat 查看七牛中文件的基本信息,名称、保存时间、HASH值、大小、MimeType
qshell stat $ qshell stat glory qiniu.png

listbucket 获取七牛空间里的文件列表,并生成文件
qshell listbucket
$ qshell listbucket glory list.txt

fetch 从互联网中获取一个资源并保存到七牛空间中,不设置key则名称是HASH值
qshell fetch []
$ qshell fetch https://www.baidu.com/img/bdlogo.png glory bdlogo.png

batchdelete 根据一个文件名列表来批量删除空间中的这些文件
删除空间glory中的所有文件:
$ qshell listbucket glory list.txt
$ qshell batchdelete -force glory list.txt

18th Day

发表于 2017-07-28

DNS

它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串

  • A记录:又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器。
    说明:·指向的目标主机地址类型只能使用IP地址
  • C记录:通常称别名指向。可以为一个主机设置别名。比如设置test.mydomain.com,用来指向一个主机www.rddns.com那么以后就可以用test.mydomain.com来代替访问www.rddns.com了。
    说明:CNAME的目标主机地址只能使用主机名,不能使用IP地址;·主机名前不能有任何其他前缀,如:http://等是不被允许的;·A记录优先于CNAME记录。即如果一个主机地址同时存在A记录和CNAME记录,则CNAME记录不生效。(C记录中的主机名可以由A记录得来,但请求的时候是用C记录绑定的域名请求,虽然与主机名请求的是同一个ip,但发送请求体不一样,缓解压力)
阅读全文 »

17th Day

发表于 2017-07-26

反向代理

可以将域名与IP绑定,使访问该域名就可以解析为绑定IP(也可以绑定localhost的某个端口)

域名是唯一的,所以不存在多个域名指向同一个ip地址

在/usr/local/nginx/conf/vhost下,有xxx.conf文件,可以设置反向代理,vim打开一个conf编辑,添加:

1
2
3
4
5
6
7
8
location /daily-css{
proxy_pass http://localhost:8888;
#proxt_pass http://google.com;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade
}

以上代码最有用的是proxy_pass xxxxxx(代理到的域名)

设置成功后需要重启lnmp nginx restart

当再次请求:原域名/daily-css,会跳到:代理域名/daily-css

Centos7

服务器给定一个域名,相当于本地(localhost、127.0.0.1),在/home/wwwroot 下可以看见与服务器ip绑定的域名,访问这些域名都会被DNS解析到绑定的ip去

在这些域名里可以放页面,访问时xxx/a.html就可访问xxx域名下的a.html页面

通过 lnmp vhost add 可以添加新的域名到wwwroot中,但这些域名需要提前设定被解析到这个服务器的ip地址

16th Day

发表于 2017-07-26

搭建服务器

安装node运行环境

wget + 下载地址            下载某个文件

tar xvf + 文件名        解压某个文件

Ln  -s  原文件地址和名字  目标文件地址和命名     创建一个快捷方式

mv    ./文件名字  新文件名    修改文件名字

yum install screen      安装screen

新下载的临时文件放在usr/local/src中,这里是处理临时文件

将下载的压缩包解压后,将解压文件中移到usr/bin/的node放在usr/local/bin下,就可以在全局中运行

找到npm的具体位置在解压文件的lib/node_modules中,创建软链接在usr/local/bin下,那npm也可以在全局中用
阅读全文 »

15th Day

发表于 2017-07-24

Token

传统的认证系统

1.用户在登录域输入 用户名 和 密码 ,然后点击 登录 ;

2.请求发送之后,通过在后端查询数据库验证用户的合法性。如果请求有效,使用在数据库得到的信息创建一个 session,然后在响应头信息中返回这个 session 的信息,目的是把这个 session ID 存储到浏览器中;

3.在访问应用中受限制的后端服务器时提供这个 session 信息;

4.如果 session 信息有效,允许用户访问受限制的后端服务器,并且把渲染好的 HTML 内容返回。

缺点:

在移动应用上 session 和 cookie 行不通。你无法与移动终端共享服务器创建的 session 和 cookie。

在这个应用中,渲染好的 HTML 被返回。但在移动端,你需要包含一些类似 JSON 或者 XML 的东西包含在响应中。

阅读全文 »

12th Day

发表于 2017-07-21

代码改进

  • 将代码的路由都加上api,统一api,该api下都是处理数据的路由
  • 由GET发送的请求都会将该form的内容作为参数加到url中
  • 在数据库找到的结果都会以对象的形式返回到一个数组里,所以,对数据进行指定的搜索,想要输出就传入result[0].xxx
  • 由于在查询数据库的时候如果没有这个属性的名字,返回的是undefined,无法输入,所以这时候需要过滤掉,Object.keys(result).length === 0,统计result对象的个数,如果是0就是undefined

分页

1
2
3
4
5
<form action="http://localhost:3000/api/list" method="GET">
<input type="text" name="page">
<input type="submit" value="page">
</form>

在page框中输入的页数会作为参数添加到http://localhost:3000/api/list中,如:http://localhost:3000/api/list?page=1

阅读全文 »
12345
RY Lin

RY Lin

努力活成你喜欢的样子

41 日志
8 标签
GitHub
破站访问量:
© 2020 RY Lin
由 Hexo 强力驱动
主题 - NexT.Muse