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

时间:2018-12-06 04:02:57

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

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

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

这是我的调试器: Debug 1 Debug 2 Debug 3

这是我的server.js:

Then("I navigate to the homepage") do
 visit(HomePage) do |page|
  page.element.click
 end
end

And("I should wait for event to capture traffic") do 
 visit(SecondPage) do |page|
  page.wait_until{page.element2.present?)
  BMP.fetch_har_entries("target/url")
 end
end

./ api / routes / users.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 / controllers / userController.js:

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

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

1 个答案:

答案 0 :(得分: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)
};

希望这会有所帮助。