首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >node.js TypeError: Object没有方法get

node.js TypeError: Object没有方法get
EN

Stack Overflow用户
提问于 2014-12-02 13:54:22
回答 2查看 3.1K关注 0票数 1

我试图将服务器初始化和其他调用从核心文件(app.js)中分离出来,但是当我试图运行它时,http.createServer(app).listen(app.get('port'), function(){ ^ TypeError: Object function (){ all code from app.js file } has no method 'get'会发出错误

这是app.js文件。

代码语言:javascript
运行
复制
/**
* Module dependencies.
*/
module.exports = function(){
    var express = require('express');
    var routes = require('./routes');
    var path = require('path');
    var app = express();

    // all environments
    app.set('port', process.env.PORT || 4000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    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('/', routes.index);
    return app;
};

这是server.js文件。

代码语言:javascript
运行
复制
var http = require('http'),
    app = require('./app');
http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

使用express@3.4.0

我错过了什么或者做错了什么..。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-02 13:55:55

您要将一个函数传递给module.exports,所以当您使用require('./app')时,需要像调用一个函数一样调用它:

代码语言:javascript
运行
复制
var http = require('http'),
    app = require('./app')();
http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});
票数 2
EN

Stack Overflow用户

发布于 2014-12-02 13:58:44

您没有理由将一个函数返回到您的app.js文件中,只需返回express对象:

代码语言:javascript
运行
复制
var express = require('express');
var app = express();
// ... more variables

// ... the rest of your code

module.exports = app;

然后,进入server.js的其余代码将运行良好。

请记住,module.exports的工作方式类似于CommonJS中的"return“(因此也是NodeJS)。

文档

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27251147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档