【问题标题】:Cannot get / Error Node.js无法获取/错误 Node.js
【发布时间】:2018-08-21 08:42:14
【问题描述】:

大家好,请告诉错误。 错误

无法获取/

所有文件都在同一个目录中

var fs = require('fs');
var express = require('express');
var path = require('path');

var app = express();

app.use('/index', function(req, res){
    res.sendFile(path.resolve(__dirname, './index.html'));
});

app.use('/app.js', function(req, res){
    res.sendFile(path.resolve(__dirname, './app.js'));
});

app.use('/style.css', function(req, res){
    res.sendFile(path.resolve(__dirname, './style.css'));
});

app.listen(8080, function(err){
    if(err) console.log(err);
});

【问题讨论】:

  • 您的代码中没有 / 的 GET 处理程序。这就是您收到该错误的原因。

标签: javascript node.js


【解决方案1】:

如果客户请求/app,您有app.use('/app' 告诉它该怎么做,如果客户请求/app.js,您有app.use('/app.js' 告诉它该怎么做,等等。

你没有app.use('/'!那么它应该在哪里找到/

(注意:为了提供静态文件,您可能应该查看 Express Static 模块)。

【讨论】:

    【解决方案2】:

    您可以在路由中使用通配符以允许通过同一路由提供多个文件:

    const express = require('express');
    const app = express();
    
    app.get('/*', function(req, res) {
        let filePath = req.params[0] || 'index.html';
        console.log('Getting ' + filePath);
        res.sendFile(filePath, {root: './'});
    });
    
    app.listen(8080, function(err){
        if(err) console.log(err);
    });
    

    为此使用静态模块可能会更好(正如其他人所建议的那样),例如

    const express = require('express');
    const app = express();
    
    app.use(express.static('./'));
    
    app.listen(8080, function(err){
        if(err) console.log(err);
    });
    

    【讨论】:

      猜你喜欢
      • 2015-11-22
      • 1970-01-01
      • 2011-02-23
      • 2022-10-13
      • 2018-12-09
      • 1970-01-01
      • 2014-05-25
      • 2013-01-19
      相关资源
      最近更新 更多