【问题标题】:'Cannot GET /' when debugging express app in vs code在 vs 代码中调试 Express 应用程序时出现“无法获取 /”
【发布时间】:2018-06-06 12:38:27
【问题描述】:

我正在尝试在 VS Code 上进行调试。我有我的简单应用程序

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var morgan = require('morgan');

app.use(morgan('dev'))
app.use(express.static('client'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

var lions = [];

app.get('/lions', function(req, res){
  res.json(lions);
});

var port = 3001;
app.listen(port);
console.log('on port ' + port);

当我从终端运行我的服务器时,我得到了正常的输出并且一切正常。

PS > node .\server\server.js
on port 3001
GET / 200 5.557 ms - 1013
GET /style.css 200 1.908 ms - 10107
GET /app.js 200 2.584 ms - 61761
GET /lions 200 2.785 ms - 2

我的所有文件都得到了服务,我的应用程序正常工作。

当我尝试调试我的应用程序 (F5) 时,控制台输出是

C:\Program Files\nodejs\node.exe --inspect-brk=15065 api-design-node\server\server.js 
Debugger listening on ws://127.0.0.1:15065/9339408e-bf15-475f-8add-767309dc82f5
on port 3001

没有别的了。

当我将浏览器指向 localhost:3001 时,我得到了

Cannot GET /

【问题讨论】:

    标签: node.js express visual-studio-code


    【解决方案1】:

    这只是因为您的快递应用中没有与GET / 匹配的路线,请尝试添加

    app.get('/', (req, res) => res.end('hello'))

    转至您的代码(或尝试在浏览器中转至/lions)。

    希望对你有帮助。

    【讨论】:

    • 嗨,'/' 路由应该由 express.static('client') 处理。至少在使用“node server/server.js”手动运行时它可以工作。
    • 但我尝试添加您推荐的内容,但在浏览器中出现以下错误:TypeError: res.end is not a function it with res.send()
    【解决方案2】:

    这段代码帮助了我

    const path = require('path');
    
    app.use(express.static(path.join(__dirname, "client")));
    

    path.join 将为静态文件创建绝对路径。

    看起来 VS 代码在不同的环境中运行

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 1970-01-01
      • 2018-06-20
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 2018-07-27
      • 1970-01-01
      相关资源
      最近更新 更多