【问题标题】:How to make request to root如何向root提出请求
【发布时间】:2014-05-04 13:25:20
【问题描述】:

我遇到了一个可能很愚蠢的问题,但来自我对快递的了解。我用 express 创建了一个项目,我不能调用根,只能调用路由。我很确定问题出在 app.use(...) 的某个地方。

app.js

var index = require('./routes/index');
var something = require('./routes/something');
...
app.use('/', index);
app.use('/users', users);
//This returns not found
app.get('/log', function(req, res){
   res.send("Test");
};

index.js

//Render index.ejs to localhost
...
//This works
idx.get(/log', function(req, res){
   res.send("Test Index");
}

那么,我应该在 app.user('/', HERE) 中写入什么内容才能使 get/post 调用在 app.js 中工作。我相信 app.use(app.router) 在 3.x 版本中解决了这个问题。

【问题讨论】:

    标签: javascript node.js express get


    【解决方案1】:

    这很奇怪,我从来没有遇到过这样的事情,我只能告诉你一些提示。也许这与您声明 app.js 的顺序有关。我从topic 得到了下面的部分(感谢 Peter Lyons),也许它对你有帮助:

    •不要使用 app.configure。它几乎完全没用,你只是不需要它。由于盲目的copypasta,它在很多样板中。 •明确的中间件和路由的顺序!!! •我在stackoverflow上看到的几乎所有路由问题都是乱序的express中间件 •一般来说,您希望您的路线解耦并且不那么依赖顺序 • 如果您真的只需要 2 条路由的中间件,请不要将 app.use 用于整个应用程序(我在看着您,bodyParser) •确保当一切都说完了,你有这个订单: •任何超级重要的应用程序范围的中间件 •您的所有路由和各种路由中间件 •然后app.router •THEN 错误处理程序

    •遗憾的是,受 sinatra 启发,express.js 主要假设您的所有路由都在 server.js 中,并且它们的排序方式很清楚。对于中型应用程序,将事物分解为单独的路由模块是不错的,但它确实会引入乱序中间件的危险

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 1970-01-01
      • 2017-11-04
      • 2018-02-08
      • 1970-01-01
      • 2022-10-04
      • 2018-01-14
      • 1970-01-01
      • 2020-01-11
      相关资源
      最近更新 更多