я не могу использовать ts-node-dev для запуска проекта ts express node

#node.js #typescript #express #ts-node-dev

Вопрос:

когда я бегу npm run dev , я не могу открыть «http://localhost:3000» в хроме.

Выполнение задачи:

 > npm run dev 

node-framework-kit@1.0.0 dev /Users/xiaoqi/node-workplace/node-framework-kit  
ts-node-dev --respawn --transpile-only ./src/app.ts

[INFO] 16:44:02 ts-node-dev ver. 1.1.8 (using ts-node ver. 9.1.1, typescript ver. 4.4.2)
 

Снимок экрана

Вот мой сервер.ts:

 import app from './app'
const PORT=3001;

app.listen(PORT,()=>{
    console.log(`Express server listening on port ${PORT}`);
}) 

вот мое приложение.ts:

 import express from 'express' 
import {json,urlencoded} from 'body-parser'
import cors from 'cors'
import morgan from 'morgan'

class App{
    public app:express.Application;
    constructor(){
        this.app=express();
        this.config();
        this.app.get('/',(req,res)=>{
            res.send({message:'hello express!!!!!'})
        })
    }
    private config(){
        this.app.use(cors())
        this.app.use(json());
        this.app.use(urlencoded({extended:false}))
        this.app.use(morgan('dev'))
    }

}
export default new App().app 

вот мой пакет.json:

 {
  "name": "node-framework-kit",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "tsc",
    "dev": "ts-node-dev --respawn --transpile-only ./src/app.ts",
    "restart": "rimraf dist amp;amp; npm run build amp;amp; npm start",
    "start":"node ./dist/server.js",
    "prod":"npm run build amp;amp; npm run start"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@types/cors": "^2.8.12",
    "@types/express": "^4.17.13",
    "@types/node": "^16.7.13",
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "mongoose": "^6.0.5"
  },
  "devDependencies": {
    "@types/morgan": "^1.9.3",
    "morgan": "^1.10.0",
    "rimraf": "^3.0.2",
    "ts-node-dev": "^1.1.8",
    "typescript": "^4.4.2"
  }
} 

вот мой tsconfig.json:

 {
  "compilerOptions": {
    "target": "es2018",
    "module": "commonjs",
    "sourceMap": true,
    "outDir": "./dist",
    "removeComments": true,
    /* Strict Type-Checking Options */
    "strict": true,
    "noImplicitAny": false,
    "strictNullChecks": true,
    "alwaysStrict": true,
    /* Module Resolution Options */
    "moduleResolution": "node",
    "baseUrl": "./src",
    "allowSyntheticDefaultImports": true, 
    "esModuleInterop": true,  
  },
  "include": [
    "./src/**/*"
  ]
} 

Комментарии:

1. извините. это моя ошибка, я забыл сменить пакет.json

2. Что вы подразумеваете под тем, что я не могу открыть » localhost:3000 » ? В чем ошибка ?

3. я запускаю неправильный файл, запускаю приложение.ts не может запустить экспресс — службу

Ответ №1:

дело сделано! просто измените сценарии в пакете.json «ts-node-dev —respawn —только для переноса ./src/app.ts» неверно, нужно изменить его на «ts-node-dev —respawn —только для переноса ./src/server.ts»

Комментарии:

1. Этот ответ не поможет другим людям с той же проблемой. Пожалуйста, расскажите, в чем заключалась реальная проблема и как она была устранена — что вы изменили? Спасибо.

2. «ts-node-dev —respawn —только для переноса ./src/app.ts» неверно, нужно изменить его на «ts-node-dev —respawn —только для переноса ./src/server.ts»

3. @taoxiaoqi вы должны добавить это в свой ответ (редактировать).