koa2

koa2入门--09.art-template高速模板引擎的使用

别来无恙 提交于 2019-12-03 13:28:33
首先在项目文件夹下使用 cmd,输入:npm install --save art-template koa-template art-template语法参考: http://aui.github.io/art-template/zh-cn/docs/syntax.html ,同时也支持ejs模板语法 后端: //koa-art-template模板引擎 const koa = require('koa'); var router = require('koa-router')(); var render = require('koa-art-template'); const static = require('koa-static'); const bodyParser = require('koa-bodyparser'); const session = require('koa-session'); var app = new koa(); app.use(static('./www')); app.use(bodyParser()); var keys = []; (()=>{ for(var i=0;i<1000;i++){ keys.push(Math.random()+100); }; }); app.keys = keys; app.use(session({

vue+element-ui +koa2 文件上传腾讯云踩坑记随笔

匿名 (未验证) 提交于 2019-12-02 23:49:02
首先,文件上传那些事儿,从头补一下 https://cloud.tencent.com/developer/article/1004961 第一个坑,koa-body的ctx.request获取   一开始没有明确需求,以为需要先把文件写到后端,然后再上传腾讯云。所以研究了下koa-body怎么用文件流读写文件到后端。   然后在获取ctx.request.body.files.file时怎么都获取不到   感谢 https://www.jianshu.com/p/34d0e1a5ac70   严正提醒:    新版本的koa-body通过ctx.request.files获取上传的文件     旧版本的koa-body通过ctx.request.body.files获取上传的文件 第二个坑,表单上传前的图片宽高获取    由于需要在后端请求一个需要当前图片宽高的接口,而formData中的file并虽然有name、size信息,但是并没有图片的宽高信息   于是在前端获取宽高,并传送给后端。 tip1:表单提交前宽高获取     这里我用的element-ui,前端代码如下 <template> <el-upload class="upload-demo" action="/api/uploadFile" :on-preview="handlePreview" :on

Nodejs -- 使用koa2搭建数据爬虫

匿名 (未验证) 提交于 2019-12-02 23:26:52
cheerio : 则能够对请求结果进行解析,解析方式和jquery的解析方式几乎完全相同 cheerio中文文档 开发参考node - cheerio模块 superagent : 能够实现主动发起get/post/delete等请求 superagent-charset : 解决爬虫数据中文乱码问题,早期版本单独使用,现配合superagent使用 koa2 : 搭建服务器环境等等 koa-router: koa路由,用于根据路由访问对应代码块,逻辑编写等作用(把他理解为像日常API接口就好) knex : 操作数据库,支持多种数据库,这里使用mysql,需要mysql中间件 开发参考knex笔记 在项目根目录下 npm init 一路回车,初始化项目环境,出现package.json文件,然后执行以下命令安装项目依赖 npm i --save cheerio superagent superagent-charset koa-router koa knex mysql 在项目根目录下创建app.js文件,编写coding const Koa = require('koa'), Router = require('koa-router'), cheerio = require('cheerio'), charset = require('superagent-charset')

koa2 源码解读 application

故事扮演 提交于 2019-12-02 22:53:37
koa2的源码比较简单,重点解读aplication, 其中context源码比较简单,主要是一些error cookies等,重点可以关注下delegate,delegate模块中,主要通过prototype的方式进行属性的增加。 request和response两个模块都是get set的一些基础api及封装的node原始方法 application 'use strict'; //严格模式 /** * Module dependencies. */ const isGeneratorFunction = require('is-generator-function'); const debug = require('debug')('koa:application'); const onFinished = require('on-finished'); const response = require('./response'); const compose = require('koa-compose'); const isJSON = require('koa-is-json'); const context = require('./context'); const request = require('./request'); const statuses =

koa2 mongdb 做后端接口的小demo

匿名 (未验证) 提交于 2019-12-02 21:53:52
现在前端全栈里面有一种技术栈比较火 前端使用 vue 或者react 后端使用 koa2 mysql数据库 或者mongdb做数据储存 但是基本这样的全栈教程 都要收费 收费就收费吧 但是 有没有遇到非常好的教程 于是 准备硬着头皮看别人项目的源码 自己摸索 一步一步完成 koa + mongdb的后端学习 下面就写一个很简单的koa + mongdb 的数据库写入 var mongoose = require('mongoose') var Schema = mongoose.Schema; mongoose.connect('mongodb://localhost/m_data') //m_data是我的数据库名字 需要自己创建 mongoose.connection.once('open',()=> { console.log("[mongoose]mongdb is start"); //监听启动 }) var userSchema = new Schema({ //建表 username: { type: String }, password: { type: String }, call: { type: Number }, email: { type: String } }) var user = mongoose.model('User',userSchema);

node.js应用脚手架:koa2、sequelize、mysql

匿名 (未验证) 提交于 2019-12-02 21:53:52
  自制了一个 nodejs 应用的脚手架。   基于 koa2 的,所以需要保证 node 环境至少为 7.6.0   吸取了以前的踩坑教训,添加了守护进程,确保应用不会因为异常导致网站直接挂掉(使用了 forever)   model 层使用了 sequelize 来映射数据库模型,数据库使用 mysql   定义了三个环境:development、production、testing ,分别是开发环境、生产环境、测试环境   使用了 nodemon 监听文件变换(只在开发环境),确保本地开发的时候顺畅进行   内置了一个 demo 的 model 、以及对应的 service 还有对应的单元测试例子,使用单元测试时需要确保正确连接到数据库,且数据库中已存在该表   另外,pkg 中的 script 主要是针对 OS X 环境的, windows 需要进行修改   另外,这个脚手架只关注了后端部分,前端部分没有做约束,可按需使用模板引擎、MVVM 框架,按需使用。   大致就是以上这些,详细的项目可以去 github 上 clone 下来查看。【】   另外,因为是在做自己博客站点的时候,突然想起来需要一个脚手架,所以才有了这个衍生项目,博客站点的项目还在开发中,稍微多了一点东西。   前端使用 react ,所以在 web/src 目录下有另一个 pkg 的文件

How to run simple app with koa2?

半腔热情 提交于 2019-12-02 01:39:11
Problem I am trying to run simple http server using koa2 , but have problems running it. It uses es6 that is expected to work in future node.js versions and I was wondering how can I run it with node v6.1.0 ? Code import Koa from 'koa'; const app = new Koa(); // Setup handler. app.use(async ctx => { ctx.body = "Hello World!"; }); // Start server. app.listen(3000); Output $ node --version v6.1.0 $ node --harmony index.js C:\Users\gevor\WebstormProjects\untitled1\index.js:1 (function (exports, require, module, __filename, __dirname) { import Koa from 'koa'; ^^^^^^ SyntaxError: Unexpected token

使用 koa2 快速搭建 mock server

老子叫甜甜 提交于 2019-11-30 09:30:31
在前后端分离式开发中,经常遇到需要自己 mock 数据测试接口的情况,下面是一种使用 koa2 快速搭建 mock 服务的实现方式。 项目搭建 1. 使用 koa-generator 初始化目录结构 首先全局安装 koa-generator npm install -g koa-generator 在合适位置上初始化目录结构 koa2 mock-server 生成的目录结构如下: 进入该目录并安装依赖 cd mock-server && npm install 2. 运行服务并启用热更新 运行服务 npm run dev dev 指令使用 nodemon 启动服务, nodemon 是 node 的自动重启工具,避免了修改代码后需要手动重启的麻烦。 接下来访问 localhost:3000 就能看到已经启动好的服务了。 koa-generator 生成的路由中默认提供了 index.js 与 users.js 两个路由文件,分别对应了: const router = require ( 'koa-router' ) ( ) // localhost:3000/ router . get ( '/' , async ( ctx , next ) => { await ctx . render ( 'index' , { title : 'Hello Koa 2!' } ) } ) /

一键生成koa/koa2项目

谁说我不能喝 提交于 2019-11-29 19:08:38
1、 npm install -g koa-generator 安装生成器 2、执行 koa mytest (koa1项目) koa2 koa2test (koa2项目) 3、进入目录 cd koa2test 4、安装依赖 npm install 5、运行 npm star 来源: https://www.cnblogs.com/pxjbk/p/11527593.html

用koa2.x写下载漫画的爬虫

倾然丶 夕夏残阳落幕 提交于 2019-11-28 13:02:05
原文引用 https://www.dazhuanlan.com/2019/08/25/5d6235bb190fd/ 用koa2.x写下载漫画的爬虫: 使用koa2.x的async ,await解决异步问题,写一个下载漫画的爬虫,代码里有惊喜和福利哦! 项目搭建 安装nodejs>7.6,安装koa-generator 直接 koa2 spider ,生成项目 安装request,request-promise,cheerio,mkdirp npm install安装依赖 思路 图片或者漫画爬虫的思路很简单,首先观察url的规律,把url按规律加入到下载任务,其实就是请求获得html内容,然后对html进行解析,找到下载的图片url(一般都是img标签的src属性值),把url放到数组保存,使用async await控制所有的任务,直到把所有的图片下载完。 难点 但是nodejs本身上异步的,如果你直接在for循环里去下载,肯定是不行的,必须控制好异步的执行上关键。 爬虫简单,处理好异步难。这里我使用的es7中async,await配合promise解决异步问题,还可以使用async模块,eventproxy,等等异步控制模块来解决。 核心代码,spider.js