新手入门nodejs教学(基于Koa2搭建Node.js实战)
新手入门nodejs教学(基于Koa2搭建Node.js实战)增加文件 middleware/index.js,用来集中调用所有的中间件:我们的设置像是『器』一样,赋予它指定的形态。Empty your mind Be formless shapeless like water. You put water in a cup it becomes the cup. You put water in a bottle it becomes the bottle. You put water in a teapot it becomes the teapot. Water can flow or crash.翻译成中文意思就是:清空你的思想,像水一样无形。 你将水倒入水杯,水就是水杯的形状。 你将水倒入瓶子,水就是瓶子的形状。 你将水倒入茶壶,水就是茶壶的形状。 你看,水会流动,也会冲击。在数据传输过程中,传输的资源都可以称之为『数据』,而『数
前面的文章中,我们已经完成了项目中常见的问题,比如 路由请求
、结构分层
、视图渲染
、静态资源
等。
那么,JSON
呢?JSON
格式数据的传输,已经深入到了我们的码里行间,脱离了 JSON
的人想必是痛苦的。那么,复合吧!
如何设置 JSON 格式
伟大的武术家——李小龙先生——说过这样一段话:
Empty your mind Be formless shapeless like water. You put water in a cup it becomes the cup. You put water in a bottle it becomes the bottle. You put water in a teapot it becomes the teapot. Water can flow or crash.
翻译成中文意思就是:
清空你的思想,像水一样无形。 你将水倒入水杯,水就是水杯的形状。 你将水倒入瓶子,水就是瓶子的形状。 你将水倒入茶壶,水就是茶壶的形状。 你看,水会流动,也会冲击。
在数据传输过程中,传输的资源都可以称之为『数据』,而『数据』之所以展示出不同的形态,是因为我们已经设置了它的格式。
传输的数据像是『水』一样,没有任何的格式和形状。
我们的设置像是『器』一样,赋予它指定的形态。
增加文件 middleware/index.js
,用来集中调用所有的中间件:
const miSend = require('./mi-send') module.exports = (app) => { app.use(miSend()) }
-
修改
app.js
,增加中间件的引用
const Koa = require('koa') const path = require('path') const bodyParser = require('koa-bodyparser') const nunjucks = require('koa-nunjucks-2') const staticFiles = require('koa-static') const app = new Koa() const router = require('./router') const middleware = require('./middleware') middleware(app) app.use(staticFiles(path.resolve(__dirname "./public"))) app.use(nunjucks({ ext: 'html' path: path.join(__dirname 'views') nunjucksConfig: { trimBlocks: true } })); app.use(bodyParser()) router(app) app.listen(3000 () => { console.log('server is running at http://localhost:3000') })
中间件迁移
随着项目的步步完善,将会产生有更多的中间件。我们把 app.js
中的中间件代码迁移到 middleware/index.js
中,方便后期维护扩展
-
修改
app.js
const Koa = require('koa') const app = new Koa() const router = require('./router') const middleware = require('./middleware') middleware(app) router(app) app.listen(3000 () => { console.log('server is running at http://localhost:3000') })
-
修改
middleware/index.js
const path = require('path') const bodyParser = require('koa-bodyparser') const nunjucks = require('koa-nunjucks-2') const staticFiles = require('koa-static') const miSend = require('./mi-send') module.exports = (app) => { app.use(staticFiles(path.resolve(__dirname "../public"))) app.use(nunjucks({ ext: 'html' path: path.join(__dirname '../views') nunjucksConfig: { trimBlocks: true } })); app.use(bodyParser()) app.use(miSend()) }
后面我们还会开发更多的中间件,比如日志记录、错误处理等,都会放在 middleware/
目录下处理。
推荐: 翻译项目Master的自述:
1. 干货|人人都是翻译项目的Master
2. iKcamp出品微信小程序教学共5章16小节汇总(含视频)