Typescript安装Koa

  1. npm install koa koa-bodyparser koa-router koa-static --save # 添加koa 注意这里没有-dev
  2. npm install @types/koa @types/koa-router @types/koa-bodyparser @types/koa-static --save-dev # 添加koa ts相关

删掉 operations.tsindex.ts ,新建项目入口文件 app.ts ,输入一下内容:

  1. import path from 'path'
  2. import Koa from 'koa'
  3. import Router from 'koa-router'
  4. import koaStatic from 'koa-static'
  5. import bodyParser from 'koa-bodyparser'
  6. const app = new Koa()
  7. const router = new Router()
  8. // Middlewares
  9. app.use(bodyParser())
  10. app.use(koaStatic(path.join(__dirname, '../public')))
  11. // Routes
  12. router.get('/api', async (ctx, next) => {
  13. ctx.body = {
  14. code: 0,
  15. msg: 'success',
  16. data: {
  17. }
  18. }
  19. await next()
  20. })
  21. app.use(router.routes()).use(router.allowedMethods());
  22. app.listen(3000, () => {
  23. console.log('Koa started')
  24. })

package.json 修改成 "dev": "nodemon --watch src/**/*.ts --exec \"ts-node\" src/app.ts"

npm run dev 之后 浏览器访问http://localhost:3000/api,即可看到内容。

在这里发现了一个很赞的点,终于不用写 const Koa = require('koa') ,已经跟Es6语法一致了!!!

OK http服务已经跑起来了。

安装mongodb

**
社区版(免费)下载地址:https://www.mongodb.com/try/download/community
具体安装步骤查看视频,或者自行网上搜索。

mongodb可视化管理工具:https://robomongo.org/

2.win10 安装MongoDB.mp4 (4.99MB)

安装typeorm

  1. npm install typeorm reflect-metadata mongodb --save # 安装typeorm、mongodb相关依赖

查看详细文档 https://typeorm.io/

一、测试链接是否生效,新建文件 src\entity\Post.ts

  1. import { Column, Entity, ObjectID, ObjectIdColumn } from 'typeorm'
  2. @Entity()
  3. export default class Post {
  4. @ObjectIdColumn()
  5. id: ObjectID;
  6. @Column()
  7. title: string;
  8. @Column()
  9. text: string;
  10. }
  • Eslint提示:对修饰器的实验支持功能在将来的版本中可能更改。在 “tsconfig” 或 “jsconfig” 中设置 “experimentalDecorators” 选项以删除此警告。打开 tsconfig.json 将“experimentalDecorators”和“emitDecoratorMetadata”选项打开。
  • Eslint提示:属性“id”没有初始化表达式,且未在构造函数中明确赋值。修改成如下代码 id!: ObjectID;

二、 app.ts 修改成如下代码

  1. import path from 'path'
  2. import Koa from 'koa'
  3. import Router from 'koa-router'
  4. import koaStatic from 'koa-static'
  5. import bodyParser from 'koa-bodyparser'
  6. import 'reflect-metadata'
  7. import { createConnection, ConnectionOptions } from 'typeorm'
  8. import Post from './entity/Post'
  9. const options: ConnectionOptions = {
  10. type: 'mongodb',
  11. name: 'mymongodb',
  12. host: 'localhost',
  13. port: 27017,
  14. username: '',
  15. password: '',
  16. database: 'comments',
  17. synchronize: true,
  18. entities: [
  19. __dirname + '/entity/*.{ts, js}'
  20. ],
  21. useUnifiedTopology: true,
  22. logging: true
  23. };
  24. createConnection(options).then(async connection => {
  25. let post = new Post()
  26. post.title = '我的标题'
  27. post.text = '我不想说'
  28. let postRepository = connection.getRepository(Post)
  29. postRepository
  30. .save(post)
  31. .then(post => console.log("Post has been saved: ", post))
  32. .catch(error => console.log("Cannot save. Error: ", error))
  33. const app = new Koa()
  34. const router = new Router()
  35. // Middlewares
  36. app.use(bodyParser())
  37. app.use(koaStatic(path.join(__dirname, '../public')))
  38. // Routes
  39. router.get('/api', async (ctx, next) => {
  40. ctx.body = {
  41. code: 0,
  42. msg: 'success',
  43. data: {
  44. }
  45. }
  46. await next()
  47. })
  48. app.use(router.routes()).use(router.allowedMethods())
  49. app.listen(3000, () => {
  50. console.log('Koa started')
  51. })
  52. }).catch((error: any) => console.log('TypeORM connection error: ', error))

出现 Post has been saved: Post { title: '我的标题', text: '我不想说', id: 5fb0b527fb27b517e0d63c7b } 证明数据插入成功。

三、去数据库验证下
打开mongo.exe,依次输入

  1. show dbs
  2. use comments
  3. show tables
  4. db.post.find({}).pretty()

即可看到刚刚插入的数据。

到此基本的依赖都已经安装完成,下一步就是考虑怎么在业务逻辑中学习使用Typescript。

2.项目准备.mp4 (29.22MB) 使用之前,建议去浏览一遍以下文档,不喜欢英文版,可以自行搜索中文版: