如何添加一个新的视图/路线expression?
我是新来的,我正在努力吸收。 我正在使用这个模板https://github.com/primaryobjects/Node.js-Bootstrap-Starter-Template好吧,直到这里,但是当我尝试添加一个新的页面,它返回给我以下错误:
C:\server\node_modules\express\lib\router\route.js:196 throw new Error(msg); ^ Error: Route.get() requires callback functions but got a [object Undefined] at Route.(anonymous function) [as get] (C:\server\node_modules\express\lib\r outer\route.js:196:15) at EventEmitter.app.(anonymous function) (C:\server\node_modules\express\lib \application.js:481:19) at Object.<anonymous> (C:\server\app.js:31:5) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16) at node.js:814:3
目的是要回答我在以下地址的新页面: http:// localhost:3000 / ask?america =
我遵循的步骤是:创build一个视图和一个path
/views/ask.jade extends layout block content div.container h1 ASK
2N
/routes/ask.js exports.ask= function(req, res){ res.render('ask'); };
3R
app.js app.get('/ask', routes.ask);
但是,当我尝试启动“节点应用程序”返回我上面提到的错误。 我在哪里弄错了?
你有没有试过要求你的routes / ask.js文件? 我很确定使用时
require('folder')
要求直接查找索引文件,并使用该索引文件,我相信可能意味着您的routes / ask.js文件实际上可能不会被应用程序“要求”。
所以
var askRoutes = require('./routes/ask') ... ... app.get('/', routes), app.get('/ask', askRoutes)
要模块化你的代码,你可以利用你的routes / index.js文件作为路由模块的加载文件,在这里你的路由模块(如routes / ask.js)加载到你的索引文件中,这样你就不会陷入困境你的app.js文件中需要的path模块。 只需要index.js文件。
你可以试试以下几点:
- 首先使用默认路由:
app.get('/', routes.index);
然后把你的代码放在app.get('/ask', routes.ask);
- 如果它不起作用,放置
res.render('ask');
最小返回值res.send('some json');