Express:为定义的路由提供静态文件

Express: Serving static files for defined routes

当我访问 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.'
          });
}

我相信您的问题可能出在 /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)
};

希望对您有所帮助。