【问题标题】:Express: Serving static files for defined routesExpress:为定义的路由提供静态文件
【发布时间】:2019-05-07 17:47:21
【问题描述】:

当我访问 mysite.com/verify/myusn 时,结果是 404 错误。当我访问 mysite.com/ 时,它按预期为我提供了索引页面。

当我打开调试器时,我意识到 Express 正在尝试提供静态文件。但它也显示我的路线已正确注册。请帮帮我。

这是我的调试器:

这是我的 server.js:

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

app.get('/*', function(req, res, next){ 
       next(); 
});
app.use(express.static(path.join(__dirname , '/_site/') , {maxAge:0}));
app.use('/assets/', express.static(path.join(__dirname , '/_site/assets') , {maxAge:0}));

var routesLogin = require(path.join(__dirname, '/api/routes/users'));
routesLogin(app);

app.get('/', function(req, res) {
  res.sendFile( path.join(__dirname , '/_site/landing.html'));
});

app.get('*', function(req, res) {
    res.send('404');
});

app.post('*', function(req, res) {
    res.send('404');
});


port = process.env.PORT || 3000;
app.listen(port);
console.log('listening on ' + port);

./api/routes/users.js:

module.exports = function(app){
var users = require('../controllers/userController');

app.route('verify/:usn')
    .get(users.verifyUSN)
};

./api/controllers/userController.js:

exports.verifyUSN = function(req, res, next){
res.status(200)
           .json({
               status: 'success',
               data: data,
               message: 'USN Verified.'
          });
}

【问题讨论】:

    标签: javascript node.js express http-status-code-404


    【解决方案1】:

    我相信您的问题可能出在 /api/routes/users.js 中

    module.exports = function(app){
      var users = require('../controllers/userController');
    
      // previously app.route('verify/:usn')
      app.route('/verify/:usn')
          .get(users.verifyUSN)
    };
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 2012-07-19
      • 2018-05-22
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      相关资源
      最近更新 更多