node.js表示createServer()不是函数

时间:2014-06-04 21:55:29

标签: express

我正在尝试建立一个快速项目。在我安装npm之后,创建server.js和node server.js,我收到了这个错误:

var app = module.exports = express.createServer();                                ^
TypeError: undefined is not a function

at Object.<anonymous> (/Users/zez/Desktop/node/nodeblog/server.js:3:36)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:349:32)
at Function.Module._load (module.js:305:12)
at Function.Module.runMain (module.js:490:10)
at startup (node.js:124:16)
at node.js:807:3

这是我在server.js中的代码:

var express = require('express');
var app = module.exports = express.createServer();                                   
app.configure(function(){
app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(__dirname + '/public'));
});


app.get('/', function(req, res){
    res.render('index', {
            title: 'Express'
                });
});

app.listen(3000);

3 个答案:

答案 0 :(得分:43)

变化:

var express = require('express');
var app = module.exports = express.createServer();  

要:

var express = require('express');
var app = express();
//Middleware
app.listen(3000)

您还可以使用以下命令全局安装express,然后使用后续命令自动生成快速模板:

npm install -g express

生成模板:

express myAppName
cd . && npm install

答案 1 :(得分:11)

express.createServer()已被弃用,也许您的项目的package.json指向最新版本?尝试将其固定为2.5.10并再次安装npm。或者查看Nodejs / Express - Launching my app: express.createServer() is deprecated如何更新项目以使用更新版本的快递。

答案 2 :(得分:8)

不推荐使用

express.createServer();,您需要使用http。

var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);