中间件不能连接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;
- res.sendfile()不提供javascripts
- node.js + socket.io + redis体系结构 – 水平serverscaling套接字连接?
- 从单独的path文件中访问快速“应用程序”对象的最佳方式是什么?
- 大多数中间件(如compress)不再与Express捆绑在一起
- 为什么客户端在node + express + socket.io + jade简单的应用程序中断开连接并重新连接
- 多个表行名称属性为json数组
- package.json必须是实际的JSON,而不仅仅是JavaScript
- 快递不发送回应阿贾克斯后或得到
- dynamic页面标题使用MEAN堆栈 – Jade和Angular