koa

How to use socket.io together with webpack-hot-middleware?

折月煮酒 提交于 2019-12-03 01:31:50
I have a Koa server using webpack-dev-middleware and webpack-hot-middleware doing hot module replacement (HMR), so the middleware uses a websocket to push changes to the client. But my application code also needs its own websocket connection between the client and the Koa server. I have no idea how to achieve that? Seems like the two are conflicting. Can I have them side by side? My server code looks something like this const compiler = webpack(webpackConfig) const app = new Koa() app.use(webpackDevMiddleware(compiler, { quiet: true, noInfo: true stats: { colors: true, reasons: true } }))) app

How can I split my koa routes into separate files?

元气小坏坏 提交于 2019-12-03 01:12:29
问题 I'm trying to figure out how to split my routes into separate files. I have this so far, but it doesn't work. I just get Not found when I try to access http://localhost:3001/api/things //server.js var koa = require('koa'); var app = koa(); var router = require('koa-router'); app.use(router(app)); require('./routes')(app); // routes.js module.exports = function *(app){ app.use('/api/things', require('./api/things')); }; // api/things/index.js var Router = require('koa-router'); var router =

Nodejs代码用Chrome浏览器调试教程

匿名 (未验证) 提交于 2019-12-03 00:26:01
2016年,Node 决定将 Chrome 浏览器的”开发者工具”作为官方的调试工具,使得 Node 脚本也可以使用图形界面调试,这大大方便了开发者。 npm install koa koa-router -D 新建app.js入口文件 const Koa = require ( 'koa' ); const router = require ( 'koa-router' )(); const app = new Koa(); router.get( '/:id' ,ctx=>{ console.log(ctx); let id = ctx.params.id; ctx.body = `<h1 style= "color:red;" >Hello nodejs, < sapn style = "color:blue" > ${id} </ span > </ h1 > `; }); app.use(router.routes()); app.listen(8080,()=>{ console.log("running at port 8080 ..."); }); 运行上面的脚本:app.js ndoe --inspect aap .js 打开浏览器输入 localhost:8080/3223322323 ,页面中就会输出Hello nodejs 3223322323 ͼ1 ͼ2

编写REST API

匿名 (未验证) 提交于 2019-12-03 00:26:01
REST API规范 编写REST API,实际上就是编写处理HTTP请求的async函数,不过,REST请求和普通的HTTP请求有几个特殊的地方: REST请求仍然是标准的HTTP请求,但是,除了GET请求外,POST、PUT等请求的body是JSON数据格式,请求的 Content-Type Ϊ application/json ; REST响应返回的结果是JSON数据格式,因此,响应的 Content-Type 也是 application/json 。 REST规范定义了资源的通用访问格式,虽然它不是一个强制要求,但遵守该规范可以让人易于理解。 例如,商品Product就是一种资源。获取所有Product的URL如下: GET /api/products 而获取某个指定的Product,例如,id为 123 的Product,其URL如下: GET /api/products/123 新建一个Product使用POST请求,JSON数据包含在body中,URL如下: POST /api/products 更新一个Product使用PUT请求,例如,更新id为 123 的Product,其URL如下: PUT /api/products/123 删除一个Product使用DELETE请求,例如,删除id为 123 的Product,其URL如下: DELETE /api

【koa】koa入门,一个最简单的koa demo

匿名 (未验证) 提交于 2019-12-03 00:22:01
const Koa = require ( 'koa' ); // 创建一个Koa对象表示web app本身: const app = new Koa (); // 对于任何请求,app将调用该异步函数处理请求: app . use ( async ( ctx , next ) => { await next (); // 由async标记的函数称为异步函数,在异步函数中,可以用await调用另一个异步函数 ctx . response . type = 'text/html' ; ctx . response . body = '<h1>Hello, koa2!</h1>' ; }) ; // 在端口3000监听: app . listen ( 3000 ) ; console . log ( 'app started at port 3000...' ) ; 然后访问 localhost : 3000 就可以看到 hello , koa2 其中,参数ctx是由koa传入的封装了request和response的变量,我们可以通过它访问request和response,next是koa传入的将要处理的下一个异步函数。 上面的异步函数中,我们首先用await next();处理下一个异步函数,然后,设置response的Content-Type和内容。 转载请标明出处: 【koa

KOA草稿

匿名 (未验证) 提交于 2019-12-03 00:17:01
koa-static cnpm i koa-static -d const static = requiere('koa-static') 新建static文件夹 static文件夹下面新建1.html server.js加上 server.use(static('./static')); 即可 let staticRouter = new Router(); server.use(static('./static'),{ maxage:864000*1000, //缓存时间,可降低服务器压力 index: '1.html' //默认文件 }) staticRouter.all(/(\.jpg|\.png|\.gif)/i,static('./static',{ maxage:60*86400*1000 })) //如果是jpg,png,gif文件那就缓存两个月 staticRouter.all(/(\.css)$/i,static('./static',{ maxage:1*86400*1000 })); //如果是css文件那就缓存一天 staticRouter.all(/(\.html|\.htm|\.shtml)$/i,static('./static',{ maxage:20*86400*1000 })); staticRouter.all('',static('.

koa2 长连接 koa-websocket

匿名 (未验证) 提交于 2019-12-03 00:15:02
引入npm依赖 npm i -S koa npm i -S koa-route npm i -S koa-websocket    1.app.js const port = 9501; const Koa = require('koa') // 路由 const route = require('koa-route') // koa封装的websocket这是官网(很简单有时间去看一下https://www.npmjs.com/package/koa-websocket) const websockify = require('koa-websocket') const app = websockify(new Koa()); app.ws.use(function (ctx, next) { ctx.websocket.send("连接成功"); return next(ctx) }) app.ws.use(route.all('/', function (ctx) { /**接收消息*/ ctx.websocket.on('message', function (message) { console.log(message); // 返回给前端的数据 let data = JSON.stringify({ id: Math.ceil(Math.random()*1000),

nodejs实现聊天机器人

匿名 (未验证) 提交于 2019-12-03 00:09:02
技术栈 服务端: koa、koa-route、koa-websocket、request。 客户端: html、css、js、websocket。 远程聊天API: http://api.qingyunke.com/api.php?key=free&appid=0&msg=msg 。 客户端展示 开发步骤 1.在桌面创建bbs文件夹,然后在文件夹内打开cmd,输入: $ npm init 初始化箱项目,生成package.json包管理文件 2.cmd输入: $ npm install koa -- save 安装koa。 3.cmd输入: $ npm install koa - route -- save 安装koa路由模块。 4.cmd输入: $ npm install koa - websocket -- save 安装koawebsocket模块。 我的package.json: { "name" : "bbs" , "version" : "1.0.0" , "description" : "" , "main" : "server.js" , "scripts" : { "test" : "echo \"Error: no test specified\" && exit 1" , "start" : "node server.js" }, "author" : ""

Koa

匿名 (未验证) 提交于 2019-12-02 23:51:01
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。express的进阶版。    const Koa = require('koa');    const app = new Koa();   app.use(async ctx => { ctx.body = 'Hello World'; });   app.listen(3000);    const Koa = require('koa');   const app = new Koa();   logger app.use(async (ctx, next) => { await next(); const rt = ctx.response.get('X-Response-Time');    console.log(`${ctx.method} ${ctx.url} - ${rt}`); });        x-response-time app.use(async (ctx, next) => { const start = Date.now(); await next();   const ms = Date.now() - start; ctx.set('X-Response-Time', `${ms

koa学习之路七

不打扰是莪最后的温柔 提交于 2019-12-02 23:08:54
之前的文章我们介绍了一下 koa koa-static静态资源中间件,本篇文章我们来看一下 koa 中 cookie 和 session 的使用。 cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个域名的时候共享数据。 HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另一个页 面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访问,都是没有任何关系的。 我们将之前项目中的 app.js 改为如下代码: //引入 koa模块 const Koa = require('koa'); const Router = require('koa-router'); const views = require('koa-views'); const static = require('koa-static'); //实例化 const app = new Koa(); const router = new Router(); //配置静态资源中间件 app.use(static(__dirname + "/static")); //配置模板引擎中间件 app.use(views('views', { extension: 'ejs' })); router.get('/', async (ctx) => { // 设置