网站搜索

javascript - 我如何使用 mongoose 和 Koa.js

我有一个简单的 Koa 应用。我也使用 mongoose 和 mongodb(Mlab)

我连接了 MongoDB。并且我只能找到 ourCat。我在控制台中看到了数组。但我不知道如何在页面上获取并显示结果。我怎样才能在某个中间件中使用我的数据库请求?

const Koa = require('koa'); const app = new Koa(); const mongoose = require('mongoose'); const mongoUri = '...'; mongoose.Promise = Promise; function connectDB(url) { if (!url) { throw Er

阅读更多 →

javascript - 为什么 koa-router 不能放在 koa-cors 之前?

我使用 Koa 和 Node.js 8.1。

今天我发现,在我的 app.js 中,如果我按这个顺序写:

const Koa = require('koa') var cors = require('koa-cors') const app = new Koa() app.use(cors(options)) app.use(router.routes())

CORS 可以工作。我可以通过在 Postman 中发送 origin 头来验证结果,并获得

访问控制允许来源

作为响应头

阅读更多 →

typescript - 覆盖 koa-body 类型定义

我如何覆盖 koa-body 的类型定义?koa-body 的类型定义如下:

declare module "koa" { interface Request { body: any; } interface Context { body: any; } }

我想覆盖成类似这样的内容(文件 index.d.ts):

import { Files } from 'formidable' interface IBody { files: Files } declare module "koa" { interface Request { body: IBody } interface Context { body: IBody } }

但是智能感知不起作用,它仍然显示 ct

阅读更多 →

node.js - 为 Typescript 和 Node (koa) 自动生成 API 文档

我正在使用带有 Koa 的 TypeScript。有人能告诉我如何生成自动的 API 文档(而不是手动)吗?我看到有一个包 tsoa (https://www.npmjs.com/package/tsoa),但是我只想为我的 routes 创建一个简单的 API 文档,所以我不想创建控制器。

阅读更多 →

TypeScript 和 Koa 2:全局错误处理程序的 async/await 问题

我正在用 TypeScript 和 Koa 2 编写一个应用程序。

然而,我遇到的问题是,我的全局 Koa 错误处理程序无法捕获在我的应用程序中抛出的错误。

以以下中间件为例(这是在加载任何路由之前的第一个中间件):

app.use(async(ctx, next) => { console.log("ErrorHandler loaded..."); try { console.log("Trying for error...");

阅读更多 →

如何将基于 Koa 的 TypeScript 项目部署到 AWS Lambda 和 Azure 云函数?

我有一个使用 Koa.JS 开发的网络应用程序。我想将其部署到 Azure 云函数和 AWS Lambda,这样我就不需要维护服务器相关的东西,而且也不会被云服务商锁定。

有什么框架可以支持这种需求吗?

这是我得到的网络应用程序。

index.ts

const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);

答案#1

有什么框架可以支持这种需求吗?

Express(旧版 Koa)支持更广泛

  • https://github.com/awslabs/aws-serverless-express
  • https://github

    阅读更多 →

export - 如何用 Typescript 合并分开的 Koa-Routers

我决定按用途划分我的路由器,所以它们看起来像这样:

路由器/homeRouter.ts

import * as Router from 'koa-router'; const router: Router = new Router(); router .get('/', async (ctx, next) => { ctx.body = 'hello world'; }); export = router;

路由器/userRouter.ts

阅读更多 →

node.js - 结合 Typescript Koa-Router 和 Passport

我在 Typescript 中是新手,正在尝试整合 koa-router 和 koa-passport。已经安装了所有 @types\

import Koa from "koa"; import Route from "koa-router"; import passport from "koa-passport"; import session from "koa-session"; const app = new Koa(); const router = new Route(); app.keys = [process.env.S

阅读更多 →

node.js - Typescript 错误:此表达式不可调用。类型 'typeof import("koa-session")' 没有调用签名

部分解决:

在 GitHub 上有一个关于这个问题的旧问题的描述。当你在全局作用域中声明一个模块时,它会重写整个导出模块的类型。当你在一个模块内部声明一个模块时,它会合并。为什么?我不知道。

https://github.com/microsoft/TypeScript/issues/17736#issuecomment-344353174

我想通过接口合并来扩展第三方模块的类型。一切正常,但当我在 t

阅读更多 →

我如何使用泛型类型的 Koa 应用修复 Koa Session 的这个 TypeScript 问题?

我正在使用以下接口来定义我的 koa 上下文和状态:

export interface AppState extends Koa.DefaultState { //... } export interface AppContext extends Koa.DefaultContext { models: DomainModels; connection: Connection; }

然后这样实例化 koa:

const app = new Koa<AppState, AppContext>(); app.use(session(sessionConfig, app));

问题在于 koa-session 的类型使用了声明合并,并导致以下错误:

Argument of type 'import("/Users/chance/Projects/pear/packages/api/node_modules/

阅读更多 →