中间件不能连接HTTP服务器

我正在阅读专业Node.js,我想了解连接HTTP中间件框架。 我创build了一个简单的中间件,返回一个用自定义testingstring回复的函数:

function replyText(text) { return function(req, res) { res.end(text); }; } module.exports = replyText; 

但是,当我尝试在连接服务器中使用这个中间件。 节点给我一个错误:

 /Users/socomo22/work/hello_world_app_v2.js:8 var app = connect.createServer(replyText('Hello World!')); ^ TypeError: undefined is not a function 

但是当我简单地使用:

 var app = connect(); app.listen(8080) 

它运行时不会出现任何错误。 我不明白我是否在做任何合乎逻辑的错误。 我将如何使用这个简单的中间件? 这是我的连接服务器文件:

 var connect = require('connect'); // middlewares var replyText = require('./reply_text'); var app = connect(); var app = connect.createServer(replyText('Hello World!')); app.listen(8080, function() { console.log('listening on 8080 port') }); 

正如文档所指出的那样, use API来装载中间件和http模块来创build服务器的实例,尽pipe您可以像这里指出的那样仅使用connect来创build实例。

正如@FranciscoPresencia指出的,添加.js扩展名,而你需要一个你的本地模块是可选的。

 var replyText = require('./reply_text.js'); 

所以你的代码应该看起来像这样,我testing了它。 按预期工作

 var connect = require('connect') var http = require('http') var app = connect(); // middlewares var replyText = require('./reply_text.js'); app.use(replyText('Hello World!')); http.createServer(app).listen(8080, function() { console.log('listening on 8080 port') }); 

注意:尽量避免像8080,80等端口作为其他应用程序可能使用的保留端口。 这有时可能会导致节点失败。


添加输出截图供您参考

在这里输入图像描述

在这里你可以用这种方式启动服务器…

 var connect = require('connect'); var http = require('http'); var app = connect(); var replyIN = require('./connetFile.js') app.use(replyIN('Hello there m back again')); http.createServer(app).listen(8888,function(){console.log('Server has started');}); 

这是你的connectFile.js

 function replyIN(text){ return function (req, res) { res.end(text); }; }; module.exports = replyIN;