我是新手,我试图尽可能多地吸收。 我正在使用此模板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=
我遵循的步骤是: 创建视图和路径
/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);
但是当我尝试启动&#34; node app&#34;返回上面提到的错误。 我错在哪里?
答案 0 :(得分:1)
您是否尝试过具体要求您的路线/ ask.js文件?我在使用
时非常肯定require('folder')
要求直接查找索引文件并使用该索引文件,我认为这可能意味着您的routes / ask.js文件可能实际上没有得到&#34; required&#34;通过应用程序。
所以
var askRoutes = require('./routes/ask')
...
...
app.get('/', routes),
app.get('/ask', askRoutes)
要模块化您的代码,您可以将routes / index.js文件用作路由模块加载文件,您可以将路径模块(例如routes / ask.js)加载到索引文件中,这样您就不会获得通过在app.js文件中包含大量必需的路径模块而陷入困境。只需要index.js文件。
答案 1 :(得分:0)
您可以尝试以下方法:
app.get('/', routes.index);
然后将代码放在app.get('/ask', routes.ask);
res.render('ask');
最小回报res.send('some json');