Javascript .get()要求在expressjs中出现回调函数错误,即使语法正确

Javascript .get()要求在expressjs中出现回调函数错误,即使语法正确,javascript,express,routes,Javascript,Express,Routes,我对expressjs非常陌生,还在学习。当我启动服务器时,它给出了一个错误-.get()需要回调函数,但得到了一个[object undefined]。此错误由以下行引起,但不确定原因 app.get('/about', routes.about); 上述行位于app.js- /** * Module dependencies. */ var express = require('express'); var routes = require('./routes'); var user

我对expressjs非常陌生,还在学习。当我启动服务器时,它给出了一个错误-.get()需要回调函数,但得到了一个[object undefined]。此错误由以下行引起,但不确定原因

app.get('/about', routes.about);
上述行位于app.js-

/**
 * Module dependencies.
 */

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

app.get('/about', routes.about);
// app.get('/about', function(req, res) {
//   res.send('abcd');
// });
app.get('/', routes.index);
app.get('/users', user.list);


http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});
我的about.js文件位于routes文件夹中,代码为-

exports.about = function(req,res) {
    res.render('about', {body:'Welcome to my about section.'});
};

不知道为什么在我尝试从几个地方确认这是如何定义路线时会出现错误。

我确实尝试了很多次,但从未找到解决方案。。所以我使用了一种变通方法。 但如果有人知道如何使用“路线系统”,请告诉我:)

在您的情况下,它将如下所示:

app.get('/about', function(req,res){
    res.render('about', {body:'Welcome to my about section'});
});

Marvin在我看来,express运行良好,但您加载模块的方式是错误的。通过查看这些行:

var routes = require('./routes');
var user = require('./routes/user');
我可以假设
'./routes'
是一个文件夹。您是否将
var routes
设置为等于一个文件夹?我不知道你的目录是什么样子,但是你说你的about函数在
about.js
中。因此,您的代码应该如下所示

var routes=require('./routes/about')


这是假设您的
路由
文件夹与此服务器文件处于同一级别,否则您必须输入正确的路径。这应该可以解决问题。

在您的
/routes
中似乎没有关于.js的
folder@antyrat-我确实在./routes文件夹中有about.js文件,我也粘贴了代码。除了我放置
函数(req,res){res.render('about')的部分之外,这与我写的完全相同,{body:'Welcome to my about section'});}
在我的routes中的一个新的
about.js
文件中,我试图使用
app.get('/about',routes.about)中的
routes.about
调用它
函数。是的,我知道,但请尝试一下。因为如果你使用代码片段,我在你的app.js中发布,它应该可以工作。在我看来,这不是
应用。get
函数,这是不起作用的路径。这就是问题所在,我想知道为什么路径不起作用。如果你仔细看看我提供的代码,我已经读过了y注释掉了您发布的解决方案。