4

我想在快递中做一个简单的链接。我放入 index.jade

a(href='/test', title='View test page') Test

在 /routes 中创建一个 test.js

/*
* GET test page.
*/

exports.test = function(req, res){
res.render('test', { title: 'Genious test' });
};

和 /views 中的一个简单 test.jade

extends layout

block content
h1= title
p Test page

我在 app.js 中添加了

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

如果我单击链接,我会收到错误消息

Cannot GET /test
4

4 回答 4

4

行。在您的 app.js 中添加以下行,您的问题将得到解决。

var test = require('./routes/test.js')

app.get('/test', test.test);

这肯定会允许您的应用程序运行并且链接处于活动状态。

于 2013-03-27T17:55:03.030 回答
3

而不是创建routes/test.js,将其添加到routes/index.js

exports.test = function(req, res){
    res.render('test', { title: 'Test' });
};

然后app.get('/test', routes.test); 将按预期工作。

于 2013-05-11T06:59:17.957 回答
1

这对我有用:

添加

exports.newpage = function(req, res){
  res.render('newpage');
};

到 /routes/index.js。然后添加

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

在下面

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

在 server.js(或 app.js)的底部。

于 2013-08-19T04:02:08.440 回答
1

事后几个月,我将以不同的方式回答这个问题。你只是想让它工作并且你有一个解决方案让它工作。但是,如果您真的想要另一个routes.js来处理您的更多路线怎么办?恐惧不是节点可以处理这个!

假设这种结构,

- app.js
- routes/
  -  index.js
  -  foo.js

而且,假设你想要你的语法app.js

app.get('/test', routes.foo.test);

为此,routes.js另外,

var foo = exports.foo = require('./foo');

然后在app.js你会有,

var routes = require('./routes');

这会起作用,它可以让你说app.js

app.get('/test', routes.foo.test);

这将为您提供另一个层次来组织您的路线。我通常喜欢将我所有的路线组织在routes对象下,但如果你想直接导入 main 你也可以,

var foo = require('./routes/foo');
app.get('/test', foo.test);
于 2013-09-16T07:57:32.457 回答