当前位置: 首页 > 面试题库 >

在Express-js中使用路由

丌官炎彬
2023-03-14
问题内容

因此,我开始使用Node.js。我在Nodejs.org上与Ryan
Dahl一起观看了视频,听说他向网站推荐了Express-js。

我下载了最新版本的Express,并开始编写代码。我在/上有一个完整的静态视图,但是一旦尝试发送参数,就会收到如下错误:

Cannot GET /wiki

我尝试按照expressjs.com上的指南进行操作,但是在最新版本中,使用路由的方式已更改,这使该指南无法使用。

指南:

app.get('/users/:id?', function(req, res, next){
    var id = req.params.id;
    if (id) {
        // do something
    } else {
        next();
    }
});

由Express生成:

app.get('/', routes.index);

我尝试添加其他路线时会出现问题。

app.get('/wiki', routes.wiki_show);

我尝试了很多方法,但始终收到Cannot GET /wiki(404)错误。

route / index.js看起来像这样:

exports.index = function(req, res) {
    res.render('index', { title: 'Test', articles: articles, current_article: current_article, sections: sections })
};

我唯一在那里做的就是添加一些参数(同一文件中的数组),而我正在工作。但是,当我复制内容并更改exports.indexexports.wiki或时exports.wiki_show,仍然Cannot GET /wiki出现错误。

谁能向我解释我在这里想念的东西吗?- 谢谢。


问题答案:

因此,在创建问题后,我在右侧获得了与此相关的列表,其中包含一个类似的问题:在Node.js中组织路由。

该帖子中的答案链接到GitHub上的Express回购,并建议查看“
路线分离 ”示例。

这帮助我更改了代码,现在可以正常工作了。- 感谢您的意见。

我的实现最终看起来像这样;

我在app.js中需要我的路线:

var express = require('express')
  , site = require('./site')
  , wiki = require('./wiki');

添加这样的路线:

app.get('/', site.index);
app.get('/wiki/:id', wiki.show);
app.get('/wiki/:id/edit', wiki.edit);

我的应用程序根目录中有两个名为wiki.js和site.js的文件,其中包含以下内容:

exports.edit = function(req, res) {

    var wiki_entry = req.params.id;

    res.render('wiki/edit', {
        title: 'Editing Wiki',
        wiki: wiki_entry
    })
}


 类似资料:
  • 问题内容: 我正在尝试使用express来解析查询字符串,以防设置某些参数并在实际路由发生之前执行一些代码。用例是获取某个可以设置的值,而与所使用的链接无关。我使用express’功能使用next()将内容传递给下一个可能的规则。 到目前为止,我尝试过-在所有app.get / post-rule-block的最顶部: 并且: 应触发的示例: 不幸的是,我的解决方案都没有真正起作用,所有发生的事情

  • 问题内容: 因此,我有一个登录页面(’/’)。此页面上是带有提交按钮的用户名和密码的登录表单。我有加载页面的app.get和一个app.post来接收表单的参数。但是,我的目的是要有一个app.post(’/ login’,function(req,res){// logic}); 没有/ login路由或页面要加载,这只会容纳登录本身的逻辑(验证用户名等)。是否有一种简单的方法来使帖子从’/’重

  • app.js: index.js 新项目。js NewProject.ejs 和类似的index.ejs。 我的主目录正常工作,即正常工作,但当我键入时,会出现以下错误: 错误:无法在EventEmitter上的视图目录“F:\project\pcgWebApp\views”中查找视图“Error”。在ServerResponse上呈现(F:\project\pcgWebApp\node\u mo

  • 问题内容: 我是expressjs的新手,我无法使用数据对象发送响应。二进制内容在浏览器中可见。给我建议如何处理? 问题答案: 我测试了您的代码,它在chrome中对我有效,但有一个更改:更改为 编辑:由于您似乎认为仅POST服务器是一个好主意,请阅读:http : //net.tutsplus.com/tutorials/other/a-beginners-introduction-to-htt

  • 问题内容: 我找到了一些代码,他们在不使用Express的情况下设置了Express ,我想知道,在不使用环境说明符的情况下使用和不使用它之间的区别是什么? 换句话说,这有什么区别: 还有这个: 谢谢。 问题答案: 根据文档,它是可选的,并且出于遗留原因保留。在您的示例中,这两段代码完全没有区别。 http://expressjs.com/api.html#app.configure 2015年更

  • 我有一个后api,有对象,但我不能打印在控制台上它的下载未定义我以为我错过了身体解析器,但添加身体解析器后,我看到错误身体解析器弃用身体解析器:使用个人json/urlencoded middlewares将不胜感激。 路线。js 应用程序。js