基于Koa2搭建Node.js实战项目教学(含视频)☞ 环境准备

文章

Koa 起手 - 环境准备

由于 koa2 已经开始使用 async/await 等新语法,所以请保证 node 环境在 7.6 版本以上。

安装node.js

项目初始化

身为程序员,初入江湖第一招:『Hello World』

首先,创建一个目录 koa2-tutorial/ 用来存放我们的代码。然后开始初始化项目:

// 创建 package.json 文件。该文件用于管理项目中用到一些安装包
npm init

项目初始化完成后,在创建的目录里,新建文件 app.js 并在里面写下:

console.log('Hello World')

现在,我们的项目结构应该如下:

├── app.js
├── package.json

打开控制台,进入目录 koa2-tutorial/ 并输入:

node app.js

成功输出 Hello World,说明环境正常。至此,我们的准备工作完成。

下面我们会基于 Koa2 启动服务器。

启动服务器

运行如下命令,安装 Koa (版本信息会自动保存在 package.json 中)

// 安装 koa,并将版本信息保存在 package.json 中
npm i koa -S

重写 app.js,增加如下代码:

const Koa = require('koa')
const app = new Koa()

app.listen(3000, () => {
  console.log('server is running at http://localhost:3000')
})

运行 node app.js 并打开浏览器访问 localhost:3000,页面显示 Not Found

因为在启动服务器后,代码并没有做其他的事情,也就没有了交互。

我们继续修改 app.js 文件:

const Koa = require('koa')
const app = new Koa()

// 增加代码
app.use(async (ctx, next) => {
  await next()
  ctx.response.type = 'text/html'
  ctx.response.body = '<h1>Hello World</h1>'
})

app.listen(3000, () => {
  console.log('server is running at http://localhost:3000')
})

重启服务器并再次访问,这时页面将正常显示 Hello World

在增加的代码里面,用到了 Koa 的「中间件」,那么什么是「中间件」呢?下一节我们会为大家详细讲述。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏进击的君君的前端之路

Form 表单

1262
来自专栏iOS122-移动混合开发研究院

【最新】LuaJIT 32/64 位字节码,从编译到使用全纪录

网上关于 LuaJIT 的讨论,已经显得有些陈旧。如果你对 LuaJIT 编译 Lua 源文件为具体的 32位或64位字节码,极其具体使用感兴趣的话,不妨快速读...

1020
来自专栏Crossin的编程教室

【Python 第32课】 写文件

来而不往,非礼也。有读,就要有写。 和把大象关进冰箱一样,写文件也需要三步: 打开文件; 把内容写入文件; 关闭文件。 打开文件我们昨天已经讲过。但python...

2574
来自专栏技术小站

Windows系统下hosts文件工作原理(转)

hosts 首先说明下, hosts文件没有后缀 一. Hosts文件的位置 很多用户都知道在Window系统中有个Hosts文件(没有后缀名),在Wind...

1173
来自专栏令仔很忙

考试系统--底层框架发布时遇到的问题解决方案(Window7 IIS6.0)(三)

考试系统--底层框架发布时遇到的问题解决方案(Window7 IIS6.0)(二)

781
来自专栏difcareer的技术笔记

JNI实现源码分析【一 前言】正文

JNI(Java Native Interface)是一种编程框架,使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用。 说得直白一...

762
来自专栏测试开发架构之路

Keepalived+Nginx高可用架构配置

1362
来自专栏编程

单点登录系统实现

单点登录系统实现基于SpringBoot 今天的干货有点湿,里面夹杂着我的泪水。可能也只有代码才能让我暂时的平静。通过本章内容你将学到单点登录系统和传统登录系统...

2267
来自专栏开源优测

接口测试 23 requests基础入门二

概述 继续requests基础分享,本文主要分享以下内容: 请求头定制 POST请求 请求头定制示例 在requests中想要为请求添加自定义头信息,只需要简单...

2859
来自专栏linux系统运维

shell介绍,命令历史,命令不全和别名,通配符以及输出重定向

1785

扫码关注云+社区