【发布时间】:2016-04-15 02:06:31
【问题描述】:
我是 Node.js 的新手并不断收到 Error: Route.get() requires callback functions but got a [object Undefined] 错误
我检查了以下问题,要么不明白,要么我仍然做错了
Express routes: .get() requires callback functions but got a [object Object]
.get() requires callback functions but got a [object Undefined]
Error: Route.get() requires callback functions but got a [object Undefined]
Node Route.get() requires callback function but got a [object undefined]
我的文件结构是
server.js
routes/api/geolocations.js
routes/api/geolocations/regions.js
routes/api/geolocations/destination.js
ROOT:server.js
var geolocation = require('./routes/api/geolocation')(app);
app.get('/geolocation/', geolocation.delegate);
然后我通过使用将我的数据传递给routes/api/geolocations.js
geolocation.delegate(unparsedData);
我从那里解析数据并将其发送到适当的子路由。
PARENT: geolocations.js 在我的routes/api/geolocations.js
var destination = require('./geolocations/destination');
var region = require('./geolocations/region');
module.exports = function(app) {
return {
app.get('./geolocation/region', region.delegate);
app.get('./geolocation/destination', destination.delegate);
delegate: function(unparsedData, req, res) {
var data =[setup package for child states using unparsedData]
//HERE Id like to pass the new `data` to region or destination using the following
region.delegate(data);
//OR
destination.delegate(data);
儿童:region.js / destination.js 在routes/api/geolocations/regions.js 或routes/api/geolocations/destination.js
module.exports = function(app) {
return {
delegate: function(data, req, res) {
...do stuff
}
}
}
更新:我想我不知道在哪里设置我的路线,在server.js 或者如果我可以在geoloaction.js,有没有关系,需要在服务器上做这样的事情.js?
var regions = require('./routes/api/geolocation/regions')([pass stuff here]);
geolocation.get('./routes/api/geolocation/regions', regions.delegate);
【问题讨论】:
-
我的第一个问题是你为什么要把这个结构弄得这么复杂。从一个更简单的结构开始,然后慢慢地将内容一次一个地分解为其他文件,这样您就可以准确地看到哪些是有效的,哪些是无效的。此外,geolocations.js 看起来像非法代码。您在对象定义的中间有
app.get()调用。
标签: javascript node.js