Desarrollo de Node.js: ts+koa --- El camino para pisar el foso (1)

Siempre he estado en la etapa de comprender TypeScript y node.js, y en realidad no lo he usado.

Solo los jefes volvieron a hablar sobre el marco kos.

Por curiosidad y ociosidad, fui hasta cierto punto a ver los tutoriales de varios tipos grandes y lo construí yo mismo.

Aunque al final corrí con éxito, sé cuántas trampas hay. Wow o(╥﹏╥)


proceso:

1. Verifique la versión de su nodo

El documento oficial dice: "Koa depende del nodo v7.6.0 o ES2015 y versiones posteriores y soporte de método asíncrono"

Use node -v para verificar la versión de su nodo, si es menor, actualícelo usted mismo ~

Mi versión de node.js es 5.8.0 y pisé la mía

2. Instale dependencias tsc y cree proyectos

Instalar mecanografiado globalmente:

npm install -g typescript

Cree el proyecto node.js:

npm init

3. Entrar en el directorio del proyecto

Genere el archivo de configuración tsc (tsconfig.json):

tsc --init

Dependencias de instalación:

npm i

Instale las dependencias de kos:

npm i koa koa-router

npm i --save-dev typescript ts-node nodemon

npm i --save-dev @types/koa @types/koa-router

Instalar dependencias mecanografiadas:

npm i typescript

En el proyecto, a veces necesita usar la importación para introducir sus propios módulos o módulos de terceros. Sin embargo, debido al mecanismo de mecanografiado, la importación directa no es posible. En este momento, necesita instalar las dependencias de @types/node

npm install --save-dev @types/node

4. Modificar paquete.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "tsc && node app.js"
  }

Nota: al nodo le sigue el archivo principal, que es el nombre del archivo que se ejecutará

5. Cree app.ts (el archivo ts que se ejecutará) en el directorio del proyecto. Según el código del documento oficial, el código es el siguiente:

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

app.use(async ctx => {

ctx.body = 'Hello World';
});

app.listen(3000);

6. ¡Corre! ¡proyecto!

Compilar el proyecto:

tsc

Ejecute el proyecto:

npm start

Introduzca la url en el navegador: localhost:3000

Paso en el hoyo:

1. Se reporta un error al compilar

ode_modules/@types/node/index.d.ts(6208,55): error TS2304: Cannot find name 'Map'.
node_modules/@types/node/index.d.ts(6215,55): error TS2304: Cannot find name 'Set'.
node_modules/@types/node/index.d.ts(6219,64): error TS2304: Cannot find name 'Symbol'.
node_modules/@types/node/index.d.ts(6225,59): error TS2304: Cannot find name 'WeakMap'.
node_modules/@types/node/index.d.ts(6226,59): error TS2304: Cannot find name 'WeakSet'.

En este momento, debe verificar el archivo de configuración de tsc (tsconfig.json)

Cambie el objetivo a "es6", use es5 en el archivo de configuración tsc generado por tsc --init, y se informará este error, porque 'Map' y 'Set' son características de es6

2. Se reporta un error al compilar

app.ts(1,1): error TS7038: A namespace-style import cannot be called or constructed, and will cause a failure at runtime.
app.ts(2,1): error TS7038: A namespace-style import cannot be called or constructed, and will cause a failure at runtime.
app.ts(3,14): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
app.ts(4,17): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
app.ts(5,26): error TS7006: Parameter 'ctx' implicitly has an 'any' type.

En app.js, ctx aún no ha definido el tipo de variable, simplemente cambie ctx a (ctx: any)

el código se muestra a continuación:

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

app.use(async (ctx: any) => {
    ctx.body = 'Hello World';
});

app.listen(3000);

Directorio de proyectos:

resultado de la operación:

------------------------

Al principio, mi pensamiento era bastante confuso, también leí muchos documentos e hice muchos intentos.

El jefe dijo que tenía que atravesarlo solo para saber qué era el pozo.

Finalmente entendido hoy. . Estoy tan cansado, aporté unas horas de buen fin de semana a la industria de TI.

Es bueno probar algo nuevo. (*^▽^*)

Supongo que te gusta

Origin blog.csdn.net/qq_31808899/article/details/80463949
Recomendado
Clasificación