中间件不能连接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;