網站搜尋

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 } }

但是智能感知不工作,它仍然顯示 c

閱讀更多 →

node.js - Typescript 與 Node (koa) 的自動 API 文件

我正在使用 Typescript 與 Koa。有人可以告訴我如何自動生成 API 文件(不是手動的)嗎?我看到有一個套件 tsoa (https://www.npmjs.com/package/tsoa),但我只想為我的 routes 擁有簡單的 API 文件,所以我不想建立 controllers。

閱讀更多 →

TypeScript 和 Koa 2:全局錯誤處理器的 async/await 問題

我正在使用 TypeScript 以及 Koa 2 撰寫一個應用程式。

然而,我遇到的問題是,我的全域 Koa 錯誤處理程式無法捕捉在我的應用程式中拋出的錯誤。

舉例來說,以下中介軟體(這是載入任何路由之前的第一個中介軟體):

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

閱讀更多 →

如何將基於 Koa 的 TypeScript 專案部署到 AWS Lambda 和 Azure Cloud Function?

我有一個使用 Koa.JS 開發的網頁應用程式。我想將它部署到 Azure Cloud Function 和 AWS Lambda。這樣我就不需要維護伺服器相關的東西,而且也不會被綁定在特定的雲端供應商上。

有任何框架可以支持這種需求嗎?

這是我得到的網頁應用程式。

索引.ts

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

答案#1

有任何框架可以支持這種需求嗎?

Express(較舊的 Koa)有更廣泛的支持

匯出 - 如何用 Typescript 結合分開的 Koa-Router

我決定根據用途來分開我的路由器,所以它們看起來像這樣:

路由器/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.SEC

閱讀更多 →

node.js - Typescript 錯誤:此表達式不可呼叫。類型 'typeof import("koa-session")' 沒有呼叫簽名

部分解決:

在 GitHub 上有一個老問題,這個問題有被稍微描述過。當你在全域範圍內宣告一個模組時,它會重寫整個導出的模組類型。當你在模組內宣告一個模組時,它會合併。為什麼?我不知道

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

我想通過介面合併來擴展第三方模組的類型。一切正常,但當我在 type

閱讀更多 →

我該如何使用泛型類型的 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/

閱讀更多 →