Javascript 节点Js.get()需要回调函数
这是我的server.js代码Javascript 节点Js.get()需要回调函数,javascript,node.js,Javascript,Node.js,这是我的server.js代码 var express = require('express'); feeds = require('./routes/whatshappeningfeed'); var http = require('http'); var pathname = require('path'); // Test services - to be removed courses = require('./routes/courses'); auth = require
var express = require('express');
feeds = require('./routes/whatshappeningfeed');
var http = require('http');
var pathname = require('path');
// Test services - to be removed
courses = require('./routes/courses');
auth = require('./routes/auth');
token = require('./routes/token');
var app = express();
app.configure(function () {
app.use(express.logger('dev')); /* 'default', 'short', 'tiny', 'dev' */
app.use(express.bodyParser());
});
app.use(function (error, req, res, next) {
if (!error) {
next();
} else {
console.error(error.stack);
res.send(500);
}
});
app.get('/me/whatshappeningfeed',feeds.getfeeds);
app.get('/courses', courses.findAll);
app.get('/courses/:id', courses.findById);
app.get('/token', token.auth);
app.get('/auth', auth.auth);
app.get('/refresh', auth.refresh);
app.listen(80);
console.log('Listening on port 80...');
这是我的错误消息:
F:\NODE.JS\poc\node_modules\express\lib\router\index.js:291
throw new Error(msg);
^
Error: .get() requires callback functions but got a [object Undefined]
at F:\NODE.JS\poc\node_modules\express\lib\router\index.js:291:11
at Array.forEach (native)
at Router.route (F:\NODE.JS\poc\node_modules\express\lib\router\index.js:287:13)
at Router.(anonymous function) [as get] (F:\NODE.JS\poc\node_modules\express\lib\router\index.js:318:16)
at Function.app.(anonymous function) [as get] (F:\NODE.JS\poc\node_modules\express\lib\application.js:431:26)
at Object.<anonymous> (F:\NODE.JS\poc\server.js:44:5)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
当我运行node server.js文件时,我发现了上述错误。它早就开始工作了。我无法解决这个问题。请任何人帮助我。错误说明一切,app.get需要回调函数。这意味着一个或多个路由缺少回调 所有路由都应该有一个functionreq,res,无论是在示例中还是在另一个函数中,请参见注释:
app.get('/me/whatshappeningfeed', function(req,res){ //request, response
//then here you can define what your server should send as a response when queries for /me/whatshappeningfeed
res.send(feeds.getfeeds()); //this will send back to the browser the result of feeds.getfeeds()
});
另外,不确定这是否是由于您所做的复制粘贴,但第一个分号需要“express”;应该是逗号。从这段代码中很难看到路由内部。你能定义它之前工作的方式吗?在这里进行一些基本的调试,找出哪个路由导致了问题?将它们全部删除,然后一次插入一个,或者将console.log语句放在它们之间,或者在调试器中逐步完成它们的初始化。这称为基本软件故障排除。这些工具的存在是为了采取一种系统的方法来找出哪些路由导致了问题以及原因。这取决于.getfeed的实现方式。它可能是作为函数req,res{…}实现的,在这种情况下,原始代码是正确的。是的,但其中一条路径显然不是,我将编辑我的答案以反映这一点,谢谢您指出