我想在快递中做一个简单的链接。 我把它放进了index.jade
a(href='/test', title='View test page') Test
创建/路由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
答案 0 :(得分:4)
确定。在您的app.js中添加以下行,您的问题将得到解决。
var test = require('./routes/test.js')
app.get('/test', test.test);
这肯定会让您的应用运行并且链接处于活动状态。
答案 1 :(得分:3)
不是创建 routes / test.js ,而是将其添加到 routes / index.js < / p>
exports.test = function(req, res){
res.render('test', { title: 'Test' });
};
然后 app.get('/ test',routes.test); 将按预期工作。
答案 2 :(得分: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)的底部。
答案 3 :(得分: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);