我使用的系统是Windows10系统,采用的开发工具是Visual Studio Code,另外还需要在VSCode中安装REST Client插件,用于发送HTTP请求和查看服务端的响应信息,类似于PostMan...,不过Rest-Client插件可以直接在VSCode中发送HTTP的GET、POST、PUT、DELETE请求,对于开发人员来说很方便,具体可以参考Johnny老师的B站视频VSCode中类似PostMan...}) 在NodeJs中对MongoDB数据库进行增删改查 连接MongoDB数据库 新建一个MongoDB数据库模型,命名为express-test const mongoose = require('...({ title: { type: String, unique: true} }) // 定义MongoDB数据模型 (表=》集合) const Product = mongoose.model...('/products', async function(req, res){ // 获取客户端请求的json数据 const data = req.body; // 插入数据到产品表集合中
经过这个中间件后,就可以在所有路由处理器的 req.body 中访问请求参数。...register; 3.在 app.js 中引入路由对象并配置一级请求路径 //引入路由对象 const register = require("...., password:"12346", }); 已插入测试数据,集合创建成功 11.在 app.js 中配置 body-paser //引入body-parser模块 用来处理post请求参数.../model/user.js"); //匹配二级请求路径 注册接口 register.post("/register", async (req, res) => { // 数据库中查询用户是否存在...return res.send(newUser); } }); 在 postman 中测试结果如下 可以成功返回插入的数据 13.在 app.js 中配置 cors 解决跨域问题
步骤3:连接MongoDB在myapp目录下,安装mongoose,这是一个用于在Node.js中连接MongoDB的库:npm install mongoose在app.js中添加以下代码,以连接到MongoDB...步骤4:定义数据模型在myapp/models目录下创建一个新文件user.js,定义一个简单的用户数据模型:// models/user.jsconst mongoose = require('mongoose...User.find({}, function (err, users) { if (err) return next(err); res.json(users); });});// POST...create new user.router.post('/', function (req, res, next) { User.create(req.body, function (err, user...步骤7:使用Postman测试API使用Postman或任何API测试工具,向http://localhost:3000/users发送POST请求,添加新用户。同样,可以使用GET请求获取用户列表。
(app.js), const mongoose require('mongoose') 4.3在我们的根目录创建一个config文件,在confing中创建一个db.js文件,这个文件存放我们的数据库的地址...>>> api >>> useinfo.js文件,这个用于存放我们的请求接口的路由文件; 5.1.1在userinfo文件中引入express和路由,先写一个get请求方法, 5.2.2...,点击send,就能看到我们请求的结果是否正确了 5.3创建数据模型 5.3.1创建我们的数据模型用于存放数据字段名。...5.4编写路由接口,实现数据的添加,删除,修改功能 在我们路由文件userinfo引入数据模型Userinfo文件,这样我们就可以查询数据库中是否有这些字段名了 const Userinfo =...接口测试,请求接口类型是post请求,输入我们的接口地址,添加字段,点击send,就可以看到我们添加数据的字段了。
URL 写到了另一个文件config文件架下的keys.js中 const db = require("..../routes/api/users') // 使用router app.use('/api/users',users); 在浏览器中输入路由 /api/users/test 端口是5000 新建模型.../models/userModel') 新建post请求 之前我们想要使用post请求,都需要安装body-parser。...,打印请求的body router.post('/register',(req,res)=>{ console.log(req.body) }) 然后用postman 发起一个请求 可以在我们的控制台中看到输出就是测试成功了...err=> console.log(err)) // 如果失败得到一个catch }); }); } }) }) 然后在postman
g nodemon cnpm install jsonwebtoken cnpm install bcryptjs cnpm install mongoose 另外,还需要在VSCode中安装扩展的rest-client...插件,它是用于在VSCode中发起http请求的一个插件,可以通过代码的方式发起http请求,包括get、post、put去请求。...类似于Postman,Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。其中Rest-Client插件在VSCode中如下图所示: ?...useUnifiedTopology: true, useCreateIndex: true }) const bcrypt = require('bcryptjs') // 定义一个用户模型...,发起对应的get、post请求,其中登录的请求在VSCode中如下图所示: ?
REST Client插件,可以不需要postman就可以调试接口,也是在你的根目录创建一个http结尾的目录。...url就是我们的访问域名,定义一个全局的,get就是请求方式,后面test就是请求名。在右边就可以看到我们返回的结果。要在server.js目录引入才能生效。 ?.../models') 编写接口,create是mongoose语法,创建 // 注册 app.post('/api/register',async(req,res) =>{ const user...,直接在password添加set,对返回值进行处理就行,通过bcryptjs中的hashSync生成hash密码 const UserSchema = new mongoose.Schema({...请求,需要添加Content-Type: application/json,所有全局定义一个@json,然后只要是post请求的就直接tongg{{json}}使用 ?
models.ts:Mongoose 模型定义文件。 routes.ts:Express 路由定义文件。 在 models.ts 文件中定义 Mongoose 模型。...例如,我们创建一个 User 模型: import mongoose from 'mongoose'; const userSchema = new mongoose.Schema({ name:...('User', userSchema); 在 routes.ts 文件中定义 Express 路由。...": { "start": "nodemon --exec ts-node src/app.ts" } } 启动应用程序: pnpm start 现在,你的后端服务已经启动,可以使用 Postman...以下是一些示例请求: 接口测试 获取用户列表:GET http://localhost:3000/users 创建用户:POST http://localhost:3000/users,请求体为 JSON
models.ts:Mongoose 模型定义文件。routes.ts:Express 路由定义文件。在 models.ts 文件中定义 Mongoose 模型。...例如,我们创建一个 User 模型:import mongoose from 'mongoose';const userSchema = new mongoose.Schema({ name: {...('User', userSchema);在 routes.ts 文件中定义 Express 路由。..."scripts": { "start": "nodemon --exec ts-node src/app.ts" }}启动应用程序:pnpm start现在,你的后端服务已经启动,可以使用 Postman...以下是一些示例请求:接口测试获取用户列表:GET http://localhost:3000/users创建用户:POST http://localhost:3000/users,请求体为 JSON 格式的用户数据
设计数据库的 Schemas 和 Models 我们要在服务器中通过 mongoose 与 MongoDB 数据库进行交互,需要定义 Schema 和 Model。...const mongoose = require('mongoose'); const Schema = mongoose.Schema; const model = mongoose.model.bind...接着我们通过 model 来创建对于的数据模型,然后导出我们创建好的数据模型。这里的 model 就是经典的 MVC 设计模式中的 Model。...完成 API 路由 路由是 Express 的关键组成部分,也是客户端与服务器进行交互的入口,在 Express 路由中接受两个参数:Request 和 Response,一个用来获取客户端的请求,一个用来发送给客户端服务器的响应...MongoDB 数据库,所以要确保本地的 MongoDB 数据库已经开启,我们可以通过如下命令来开启: $ mongod 好了,现在我们的 API 服务器就搭建完成了,现在我们通过 API 测试工具 POSTman
使用 Mongoose 简单的建立一个博客数据库以及模型之间的关联。...js 1const Post = mongoose.model( 2 "Post", // 模型名称 3 new mongoose.Schema({ 4 title: String, 5...categories: [ // 分类与分类模型相关联 6 { 7 type: mongoose.SchemaTypes.ObjectId, // 关联分类模型中的唯一 _id...6); COPY 插入几条数据。...因为分类模型中不存在对 Post 的记录所以查询的时候要建立虚拟字段。
$inject = ['http', '$state']; export default loginCtrl; 后端nodejs代码 后端由两部分组成,一部分为处理post请求,接收数据的中间件。...向数据库插入用户信息代码(users.js): var mongoose = require('....+ err); } else { console.log("Res:" + res); } }); } 当发送一条登录请求时...,nodejs会将此数据插入数据库。...在users.js中增加,node中自带的加密模块,crypto。即: var mongoose = require('.
下载地址 4 Koa + Mongodb 操作 4.1 安装链接 npm i mongoose -Sconst mongoose = require('mongoose') // 默认 27017 端口...')) mongoose.connection.on('error', console.error)像链接地址、端口配置我们最好单独放在配置文件中,更好的维护// app/config.js module.exports...const mongoose = require('mongoose') const { Schema, model } = mongoose // 通过 schema 设计出表结构,简单结构复杂结构都可以...required: true } }) // User 表 module.exports = model('User', userSchema) 操作数据库实现增删改查功能 把我们创建的模型引入到上一节中创建的控制器中...ctx.body = user } } module.exports = new UsersCtl() 5 mongoodb 其他操作 我们看到列表中有返回密码字段,这是不合适的,容易泄露,所以需要在模型中隐藏
mongoose 核心概念 schema 约束字段/列数据 model模型 对应 集合 后期用它来实现数据增删改查 简介 安装 npm i mongoose schema 英文网: http://mongoosejs.com...后面通过模型管理集合中的数据。...使用 基本模型 // 一、导入模块 const mongoose = require("mongoose"); // 二、连接数据库 const db = mongoose.createConnection...); 在/constroller/stu.js文件中,导入模型,调用模型中的方法完成逻辑的编写,最后导出。..., data: null, }); } }; // 导出成员 module.exports = { create }; 在/models/stu.js模型文件中
1.2 创建文档 创建文档实际上就是向集合中插入数据。...const course = new Course({ name// 如果想要向集合中插入数据 那么需要创建集合构造函数的实例 // 创建文档 const course = new Course...mongoose验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。...// 文章集合 const Post = mongoose.model('Post', new mongoose.Schema({ title: { type: String }, //...将用户信息展示到页面中 2.实现用户修改功能 1.指定表单的提交地址以及请求方式 2.接受客户端传递过来的修改信息 找到用户 将用户信息更改为最新的 当用户访问
最佳实践 请求设计规范 URI 使用名词,尽量使用复数,如/users URI 使用嵌套表示关联关系,如/users/123/repos/234 使用正确的 HTTP 方法,如 GET/POST/PUT...拿到路由分配的任务并执行 在 koa 中是一个中间件 为什么要用控制器 获取 HTTP 请求参数 Query String,如?...node.js 的ctx.req中BooleanfalsepatchKoa将请求体打到 koa 的 ctx.request 中BooleantruejsonLimitJSON 数据体的大小限制String...简单的说,Mongoose就是对node环境中MongoDB数据库操作的封装,一个对象模型(ODM)工具,将数据库中的数据转换为JavaScript对象以供我们在应用中使用。...("/login", login); // 用户登录 module.exports = router; app/models/users.js 用户数据模型(schema) const mongoose
不幸的是,这教程实际上并不帮助我们,因为它没使用凭证,但是当我们在这里时,我们会很快注意到凭据存储中的错误: 我们将 以明文形式将 JWT 密钥存储在存储库中。 我们将使用对称密码存储密码。...因为更有趣的是,这个教程将这个 mongoose User 对象序列化到 JWT 中。 让我们克隆 Scotch 的这个资源库,按照说明进行运行。...这个令牌返回并显示在了 Postman 上。 ? 从 Scotch 教程返回的 JWT 令牌。 请注意,JSON Web 令牌已签名但未加密。...现在,任何一个包括存储在 Mongoose 模型甚至过期的令牌都有你的密码。鉴于这个来自HTTP,我可以把它从线上找出来。 下一个教程怎么样呢?...比如用户注册或检查登录密码的多个请求尽管是轻量级的 HTTP 的请求,但是会花费服务器大量的昂贵时间。
这些模块可以将日志存储在不同格式或级别的文件中。我们将使用流行的ORM Mongoose 讨论 Node.js Express 程序中的 API 日志记录。...那么如何创建一个 Mongoose 插件,以更清洁的方式为你进行记录并简化 API 日志? Mongoose 中的插件是什么? 在 Mongoose 中,模式是可插入的。...这是我们的模型:models/log.js const mongoose = require('mongoose') const Schema = mongoose.Schema const { ObjectId...在 schema.post('init') 的 toObject()中: doc....你还可以通过在架构模型中初始化它来将其用于特定架构。 const mongoose = require('mongoose') mongoose.plugin(require('.
实际在数据库中产生的集合名为courses 2.创建文档 创建文档实际上就是向集合中插入数据。 方法1 分为两步: ①创建集合实例。 ②调用实例对象下的save方法将数据保存到数据库中。...: true }); // 调用实例对象下的save方法将数据保存到数据库中。...= mongoose.model('Post', postSchema); // create方法插入数据 Post.create({ title: 'aaa', age: 68,..., ref: 'User' } }); // 创建集合 const User = mongoose.model('User', userSchema); const Post =...mongoose.model('Post', postSchema); // 插入文档数据 // User.create({ // name: 'xc' // }).then(result =
] 当前请求中的路由数据 [FromServices] 作为操作参数插入的请求服务 来一张 Postman 的图片: HTTP 请求中,会携带很多参数,这些参数可以在前端设置,例如表单、Header、...那么,上面的表格正是用来从 HTTP 请求中获取数据的 “方法” 或者说 “手段”。HttpCentext 等对象不在本文讨论范围。...[Bind] 用于类或方法(Controller、Action),指定模型绑定中应包含的模型属性。...由于排除的属性设置为 NULL 或默认值,而不是保持不变,因此它在编辑方案中无法很好地工作; 因为 Bind 特性将清除未在 某个 参数中列出的字段中的任何以前存在的数据。 一脸懵逼。...再认真看了文档 :因为 Bind 特性将清除未在 某个 参数中列出的字段中的任何以前存在的数据。
领取专属 10元无门槛券
手把手带您无忧上云