我是新手,我正在尝试尽可能多地吸收。 我正在使用这个模板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=
我遵循的步骤是: 创建 View 和路径
/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);
但是当我尝试启动“node app”时,会返回上述错误。 我哪里错了?
最佳答案
您是否尝试过专门要求您的routes/ask.js 文件?我在使用时非常确定
require('folder')
require 直接查找索引文件并使用该索引文件,我相信这可能意味着您的 paths/ask.js 文件实际上可能不会被应用程序“需要”。
所以
var askRoutes = require('./routes/ask')
...
...
app.get('/', routes),
app.get('/ask', askRoutes)
为了模块化你的代码,你可以利用你的routes/index.js文件作为路由模块加载文件,你可以在其中将你的路由模块(如routes/ask.js)加载到你的索引文件中,这样你就不会因为app.js文件中存在大量必需的路由模块而陷入困境。只需要 index.js 文件。
关于node.js - 如何将新的 View /路线添加到 Express 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31117944/