Koa2+mongoose】的更多相关文章

代码地址如下:http://www.demodashi.com/demo/12466.html  之前做的项目是采用 Express 框架进行搭建的,其中的日志管理采用了 winston + Postgresql + sequelize的形式, 最近倒弄 Koa2 框架,于是就想着尝试采用另一种方式进行访问日志的管理,就想到了 log4js.关于 log4js 的介绍在这里就不多叙述了,想了解请点击  log4js详细介绍  说到数据持久化,最普遍的无非就两种方式: 文件存储 数据库存储  本文…
由于学的是java,所以此框架多少有点java的影子,我觉得不必排斥语言,只要思想好,所有语言均可以通用.项目分以下几层 app.js项目启动入口,类似于main函数 controller-view层,此层主要处理输入和输出,与用户交互.node里偏爱叫route层,大致指的是同一个东西 如果是传统的项目,则此层同时包含view+contrller 如果前后端彻底分离,则只有controller view单指视图层,一般是html,asp,jsp,php等 service业务逻辑层,此层既不直接…
为什么选择Koa koa是Express框架同个公司的产品,是开发者在node7.0版本之后使用promise的api把express再次封装了一次,起名Koa,==Koa=Express+Promise==,并且中间件的使用由链型变成了环形[洋葱] 官网 网友笔记 安装 cnpm i koa --save 最基础使用 const Koa = require('koa'); const app = new Koa(); app.listen(3000); 中间件middleware 处在 HTT…
mongodb下载/安装 mongoose   npm install --save mongoose mongoose 数据库连接 const mongoose = require('mongoose') const DB_RUL = 'mongodb://localhost:27017/koa2' mongoose.connect(DB_RUL, function(err){ if(err){ console.warn('数据库连接失败:'+err) }else{ console.log('…
概述 这几天学习koa2,有一些心得,记录下来,供以后开发时参考,相信对其他人也有用. 起因 这几天学习koa2,写的代码执行时有一个奇怪的bug:明明能够返回数据,却有时正常返回数据,有时偏偏给你返回404,很头疼.问传统后端,都不懂koa:上网查资料,怀疑是bodyparser的bug,于是换了另一个koa-body中间件来解析post请求,还是会出现这个bug. 直到我去github上面查别人koa2 + mongoose的代码,才发现是异步的问题.总结起来解决方案是这样的:既然koa2里…
项目地址:https://github.com/caochangkui/demo/tree/koa-mongoose 连接数据库 数据库名字为:koa-mongoose const mongoose = require('mongoose') // 连接数据库,URL以mongodb:// + [用户名:密码@] +数据库地址[:端口] + 数据库名.(默认端口27017) // 连接mongodb数据库的链接解析器会在未来移除,要使用新的解析器,通过配置{ useNewUrlParser:tr…
项目地址:https://github.com/caochangkui/demo/tree/koa2-learn 1 构建项目 1.1 安装koa-generator $ npm install -g koa-generator 1.2 使用koa-generator生成koa2项目 $ koa2 -e project(项目名称) (-e 代表使用模板引擎ejs) 1.3 进入项目 $ cd project $ npm install 1.4 启动项目,默认端口号是3000 $ DEBUG=ko…
使用node搭建服务器,用到了现在比较流行的框架koa. 1.初始化package.json npm init -y 2.安装koa2 npm i koa --save 3.搭建服务器 const Koa = require('koa') const app = new Koa() app.use( async(ctx) => { ctx.body = "hello world" }) app.listen(3000, () => { console.log('demo2…
初始化项目 npm init -y 先安装一波乱七八糟的依赖插件(需要具备一定的koa2知识,至于mongoDB自行百度安装教程),模板引擎我使用的是art-template(据说是性能最好的,而且是因为JQ时代的产物,念旧) npm i koa koa-router koa-bodyparser koa-static koa-views art-template koa-art-template mongoose -S 安装nodemon实时监听修改 npm i nodemon -D 新建ap…
await model.photo.update({ _id: { $in: photoIdsParam } }, { $pull: { customerIds: { code: custCode, $or: [{ 'userIds.0': { $exists: false } }, { 'userIds.0': ctx.user.userid }] } } }, { multi: true }) await model.photo.update({ _id: { $in: photoIdsPa…
没有去看update和findOneAndUpdate的区别了,困扰了一晚上的问题,查了下官网,改成这样就好了 await model.user.findOneAndUpdate({ openIds: {'name':'江山一族'} }, { $set: user }, { upsert: true })…
前言 前段时间和公司一个由技术转产品的同事探讨他的职业道路,对我说了一句深以为然的话: "不要把自己禁锢在某一个领域,技术到产品的转变,首先就是思维上的转变.你一直做前端,数据的交互你只知道怎么进,却不知道里面是怎么出的,这就是局限性." 醍醐灌顶般,刚好学习vue的时候看到有个注册登录的项目,索性我也跟着动手做一个vue项目,引入koa和mongodb,实现客户端(client)提交-服务端(server)接收返回-入数据库全过程. 本项目基于vue-cli搭建,利用token方式进…
本文转自:https://www.cnblogs.com/linxin/p/9491342.html 前言 在前后端分离的开发中,通过 Restful API 进行数据交互时,如果没有对 API 进行保护,那么别人就可以很容易地获取并调用这些 API 进行操作.那么服务器端要如何进行鉴权呢? Json Web Token 简称为 JWT,它定义了一种用于简洁.自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法.JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名.…
前言 在前后端分离的开发中,通过 Restful API 进行数据交互时,如果没有对 API 进行保护,那么别人就可以很容易地获取并调用这些 API 进行操作.那么服务器端要如何进行鉴权呢? Json Web Token 简称为 JWT,它定义了一种用于简洁.自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法.JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名. 说得好像跟真的一样,那么到底要怎么进行认证呢? 首先用户登录时,输入用户名和密码后请求服务器登录接口…
安装 yarn add koa 代码 Koa的核心代码就三行 const app = new Koa() app.use(middleware) app.listen(3000) const Koa = require('koa') const app = new Koa() app.use(async (ctx, next) => { ctx.body = 'Hello World!' }) app.listen(8080) 至此一个简单的服务器运行成功. koa脚手架 npm install…
前言 如今nodejs变得越来越火热,采用nodejs实现前后端分离架构已被多数大公司所采用. 在过去,使用nodejs大家首先想到的是TJ大神写的express.js,而发展到如今,更轻量,性能更好的koa已然成为主流, 它同样出自TJ大神手笔,如今版本已更新到了koa2,不仅性能优异,它还支持async/await,堪称回调地狱的终结者 下面,我们来探讨下,如何使用koa2+es6/7来打造高质量的Restful风格API. 刨根问底,篇幅略长,精华在后面,需要耐心看. 1. 两种模式 一种…
项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + Element 构建项目前端,Node.js + Koa2 + MongoDB + Redis 实现数据库和接口设计,包括邮箱验证码.用户注册.用户登录.查看删除用户等功能. 1. 技术栈 前端 初始化项目:vue-cli3.0 组件库:Element-ui 路由控制/拦截:Vue-router 状…
首先初始化项目 npm init -y 安装koa2 npm install koa --save 项目根目录 新建 index.js //这是最基本的服务 const Koa = require('koa'); const app = new Koa(); app.use(async(ctx)=>{ ctx.body = '<h1>hello world</h1>' }); app.listen(3000,()=>{ console.log('[server]star…
地址:http://jspang.com/ https://github.com/shenghy/SmileVue 1.vant  https://www.youzanyun.com/zanui/vant#/zh-CN/intro 2.使用vant按需引入想要的组件,import { Button } from 'vant'; 前提是要引入 babel-plugin-import https://www.youzanyun.com/zanui/vant#/zh-CN/quickstart 在.b…
1 文件结构:pages中放置页面代码:server 分为 dbs 和interface两个文件夹: dbs设置有关数据库的代码:interface设置接口信息: 2.2 先看dbs的,在dbs的配置文件config.js中定义: export default { //该文件是配置文件,在 server/index 和interface 中引入使用. dbs:'mongodb://127.0.0.1:27017/student',//配置数据库host和数据库名字student redis:{…
node + koa2 + mongodb 写了一个给前端的接口 如果不是写这个接口,这辈子都发现不了mongodb里这个大坑 mongoose 是个ODM(Object Document Mapper),mongodb是nosql数据库,文档存储 mysql,sqlserver,oracle都是关系型数据库 所以mongodb无法在取到对象增加属性,必须在追加时候重新用一个对象,或者在schema中添加这个对象的key model.js // 这里用来建数据库表结构相关的 const mong…
现在前端全栈里面有一种技术栈比较火 前端使用 vue 或者react 后端使用 koa2 mysql数据库 或者mongdb做数据储存 但是基本这样的全栈教程 都要收费 收费就收费吧 但是 有没有遇到非常好的教程 于是 准备硬着头皮看别人项目的源码 自己摸索 一步一步完成 koa + mongdb的后端学习 下面就写一个很简单的koa + mongdb 的数据库写入 user.js //这个页面写数据库连接 var mongoose = require('mongoose') var Schem…
Koa2学习(九)与mongoDB交互 数据库下载与安装 windows下载地址:http://dl.mongodb.org/dl/win32/x86_64 linux下载地址:https://www.mongodb.com/download-center#community 安装教程略 数据库驱动 node.js要与mongo交互,需要安装mongodb驱动. npm i mongodb --save mongoose则是node.js中一个非常流行的对mongodb驱动的封装,内部已经实现了…
0.效果演示 插入视频插不进来,就很烦.可以出门右拐去优酷看下(点我!). 1.后端搭建 1.1项目结构 首先看一下后端的server目录 挨个解释一下 首先dbs文件夹顾名思义,操作数据库的,modules就是操作数据库的mongoose模型. config.js是为了方便修改数据库数据. interface就是接口文件夹,utils就是工具的意思呗,接口需要用到的axios和账号集权的passport都在这里修改(passport是啥待会儿再细说). 和utils同级的就是users.js…
0.效果演示 插入视频插不进来,就很烦.可以出门右拐去优酷看下(点我!). 1.准备工作 1.1前端框架 前端使用了基于vue.js的nuxt.js.为什么使用nuxt.js? 首先我做的是博客的项目,所以SSR至关重要.虽然跟本文要讲的登录注册没有什么关系,但是文章如果用axios来异步获取的话,那么搜索引擎是抓不到任何数据的.用nuxt.js可以说是为了整个项目考虑. 第二点就是省事,Nuxt.js的项目条理非常清晰,有非常方便的路由和模板功能,而且方便前端和服务端进行沟通.而且自动支持es…
主要框架:koa2全家桶+mongoose+pm2. 在阅读前建议将项目克隆到本地配合食用,否则将看得云里雾里. 项目地址:https://github.com/YogurtQ/koa-server. 如有错误,欢迎指正.如有疑问,欢迎交流. 在此强烈推荐还在用express的同学转到koa2,koa2本就是express原班人马打造,熟悉express的话上手很快,而且es6/es7语法真的越用越爽.如果是新手的话,直接学习koa2就对了. 一.安装 node.js v7.6.0+ npm v…
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. 当然要使用的话,必须要先安装好环境Node.js与MongoDB => MongoDB安装 MongoDB是目前最流行的noSQL数据库之一,它是专为node.js而开发的,理解下与我们常用的RDBMS关系型数据库的区别就可以基本使用了 MongoDB中有三个基本的概念区别于RDBMS 数据库:数…
Topic.aggregate( //{$match:{_id:"5576b59e192868d01f75486c"}}, //not work //{$match:{title:"test"}}, //{$match:{_id:new mongoose.schema.Types.ObjectId(id)}}, //not work {$match:{_id:new mongoose.Types.ObjectId(id)}}, ... function(err,re…
MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩展) 无模式(同个数据文档中的数据可以不一样) 部署简单方便(默认无密码,也带来安全问题) 服务的启动: mongod (此前需要安装了mongo数据库,并创建过mongodb的目录:$ mkdir -p /data/db) 启动mongodb后,可以使用mongo命令行来操作数据库,或使用Robo…
参考 :koa2-boilerplate    https://github.com/superalsrk/koa2-boilerplate Ajax Login and Ajax Logout in Koa2, based on koa-passport and passport-local https://github.com/koajs/koa/wiki   有中间件列表 1.rkusa/koa-passport    https://github.com/rkusa/koa-passpo…