验证身份

验证身份

JWT, JSON web token

interface

用它可以描述一种数据的样子,或者叫形状,就是可以定义一个 interface,起一个名字,然后在里面可以添加一些属性,设置这些属性对应的类型,再把它用在应用里的其他地方。然后在应用的其他地方可以把一个数据的类型设置成这种 interface。所以定义一个 interface 就相当于定义了一种数据类型。

阅读全文

用户登录

tips:node+mysql

用户登录

在服务端可以设计一套用户登录的方法,用户可以使用这套方法来申请登录,服务端验证以后可以给用户签发一个登录凭证,下回这个用户再请求或访问应用的时候可以带着这个凭证,这样服务端就知道这个用户是谁了,用户在登录前先得注册一个账号,服务端会把用户的账号信息放在数据仓库里面保存起来,比如用户名和 hash 之后的用户密码。

阅读全文

存储内容

创建内容

post.service.ts:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import {connection} from '../app/database/mysql';
import { PostModel } from './post.model';

/**
* 创建内容
*/
export const createPost = async (post:PostModel) =>{
// 准备查询
const statement = `
INSERT INTO post
SET ?
`
//执行查询
const [data] = await connection.promise().query(statement,post)

//提供数据
return data;
}

阅读全文

数据仓库

概念

在一台设备安装了数据仓库管理系统,启动了这套系统以后,这台设备就可以提供数据仓库服务了,我们的服务端应用可以连接到这个数据仓库服务,然后存取应用的数据。


阅读全文

数据连接

存储数据

服务端应用需要一种方法跟数据仓库连接,然后就可以处理这个数据仓库里的数据了,比如用户可以通过应用的客户端去发布一个内容,这个内容会通过网络交给服务端应用,服务端收到请求会把这个请求主题里面的数据提取出来,然后把它放在应用的数据仓库里存储起来,这样以后需要用到这个数据的时候就可以从数据仓库里调取出来。

阅读全文

mysql Access denied for user root@localhost (using passwordYES)问题

##

记录一个 mysql 登录的问题,尝试了很多方法,最终这个方法解决了问题。转载于 https://www.cnblogs.com/tonyzt/p/11691591.html

阅读全文

设计架构

tips

项目使用 express 和 ts

概念

我们不可能把应用里的东西都放在同一个文件里面,因为这样会让应用变得混乱不堪,所以需要一种合适的架构,将应用分割成不同的部分。每个部分里可以有自己的组织结构。在很多重型的框架里面都会提供这样的架构,比如这种框架里可能会有模块、服务、拦截器、守卫、中间件这些东西,在应用中可以创建这些东西然后把它们组织在一起。规划应用的架构可以根据功能将应用分割成不同的部分,比如说 app 表示应用,auth 是身份验证,user 是用户,post 是内容,comment 是评论等等。每个部分都可以单独的放在一个目录里面。每个部分又可以细分一些组件,比如 router 表示路由,controller 表示控制器,middleware 是中间件,service 是服务。比如说 user,它里面的东西是和用户相关的东西,可以把它单独放在一个 user 的目录里面,在这个目录里面又可能会包含一些文件,比如说 user-router,user-controller,user-middleware,user-service,在 router 文件可以定义跟这个部分相关的一些路由,也就是应用的接口,在 controller 文件中可以定义接口需要的处理器,这样在 router 文件里面就可以导入使用在 controller 中定义的这些处理器。模块里面需要的中间件可以单独放在 middleware 这个文件里面,在 service 文件里可以定义一些服务方法,其实就是一些函数,在别的地方可以导入使用这些函数,比如在控制器的方法里面可以重复地用到这些东西。在控制器的方法里面可能会重复用到的一些东西我们可以单独地把它定义成一个服务,这样就可以重复地去使用了。

阅读全文

在node项目中使用typescript

在项目中使用 ts
安装:
npm install typescript –save-dev

ts 配置文件:
创建 tsconfig.json 文件,文件内容为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators":true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"target": "es2017",
"sourceMap":true,
"outDir": "./dist",
"baseUrl": "./",
"incremental": true
},
"include": [
"src/**/*"
],
"exclude": ["node_modules", "dist"]
}

阅读全文

包管理


概念
包(Package),把一些东西打成一个包,这个包可以提供一些功能,在其他地方可以使用这个包提供的功能。主要是由javascript写的一些代码文件。

依赖
包和包之间存在依赖关系,一个包里可能会依赖另一个包提供的功能,想要正常使用一个包的功能就要解决它所需要的依赖,需要将依赖的包一同下载到项目里面。手动解决这些依赖是很麻烦很费时的事情,所以我们需要一个包管理工具,npm。

阅读全文

网络协议


概念
协议就是在网络和设备之间签的一个合同,大家都履行这个合同才能正常的沟通和合作。也可以把协议想象成协商出来的一套方法,比如先干什么后干什么怎么干等等,大家可以用这套方法来协商交换数据。http就是一种协议,客户端与服务端、服务端与服务端,都可以以这种协议来传输数据

阅读全文