本项目旨在学习如何快速使用 nodejs 开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师)
由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序(并非循序渐进的教学文档)。建议配合项目源码node-mongodb-template 。
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (一):项目简介及安装依赖
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (二):项目文件夹架构及路由的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (三):Cors的设置及.env文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (四):状态码的使用
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (五):POST上传文件的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (六):token的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (七):MongoDB的设置
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (八):API说明(暂时完结,后续考虑将在线版mongoDB变为本地版)
api说明
user相关
api说明 | 路由 | 请求类型 | Body | 是否需要token |
---|---|---|---|---|
用户注册 | /user/signup | POST | ||
用户登录 | /user/login | POST | 生成token | |
删除用户 | /user/:userId | DELETE | 是 |
//POST localhost:3000/user/signup
//body:{
// "email":"[email protected]",
// "password":"1111"
//}
//成功请求
{
"message": "Create user successfully",
"createdUser": {
"result": {
"_id": "670e668c1582b8a04f4bb243",
"email": "[email protected]",
"password": "$2b$10$uWfDEzRBwOBbJjRD8PmA7.14rH4RFJOHNB3G5RV6e/MP8iSLGCWPa",
"__v": 0
}
}
}
//POST localhost:3000/user/login
//body:{
// "email":"[email protected]",
// "password":"1111"
//}
//成功请求
{
"message": "Auth successfully",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAMTExLmNvbSIsInVzZXJJZCI6IjY3MGU2NjhjMTU4MmI4YTA0ZjRiYjI0MyIsImlhdCI6MTcyODk5NzE3NywiZXhwIjoxNzI5MDAwNzc3fQ.kblXndIY5jErCRswvzaogOGLkeZ1ufDGHG4wIQwhT2Y",
"request": {
"type": "POST",
"url": "http://localhost:3000/user/signup",
"body": {
"email": "string",
"password": "string"
}
}
}
products相关
api说明 | 路由 | 请求类型 | Body | 是否需要token |
---|---|---|---|---|
查看所有产品 | /products | GET | ||
查看指定产品 | /products/:productId | GET | ||
新增一个产品 | /products | POST | Form-data { name:[string/value], price:[number/value], productImage:[file/value] } |
是 |
修改指定产品 | /products/:productId | PATCH | [{ "propName": "name","value":"updateone" }, { "propName": "price","value":1 }] 可以只修改一个属性 |
是 |
删除指定产品 | /products/:productId | DELETE | 是 |
//POST localhost:3000/products
//form-data:{
// "name":"test",
// "price":9.9,
// "productImage":,,
//}
//未登录
{
"message": "Auth failed"
}
//ok
{
"message": "Create product successfully",
"createdProduct": {
"result": {
"_id": "670e67be1582b8a04f4bb246",
"name": "testproduct",
"price": 11,
"productImage": "uploads/2024-10-15T13:01:50.603Z11.jpeg",
"__v": 0
},
"request": {
"type": "GET",
"url": "http://localhost:3000/products/670e67be1582b8a04f4bb246"
}
}
}
//PATCH localhost:3000/products/670e67be1582b8a04f4bb246
//[{"propName":"name","value":"testproduct2update"}]
//Ok
{
"message": "Product updated successfully",
"request": {
"type": "GET",
"url": "http://localhost:3000/products/670e67be1582b8a04f4bb246"
}
}
orders相关
api说明 | 路由 | 请求类型 | Body | 是否需要token |
---|---|---|---|---|
查看所有订单 | /orders | GET | 是 | |
查看指定订单 | /orders/:orderId | GET | 是 | |
新增一个订单 | /orders | POST | { “productId”:"", "quantity":"",} |
是 |
删除指定订单 | /orders/:orderId | DELETE | 是 |