中间件无法连接 HTTP 服务器
middleware not working on connect HTTP server
我正在阅读 Professional Node.js,我正在尝试了解连接 HTTP 中间件框架。我创建了一个简单的中间件,它 returns 一个用自定义测试字符串回复的函数:
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')
});
正如 documentation use use
API to mount a middleware and a http
module to create an instance of server although you can create an instance just with connect as pointed here 指出的那样。
正如@FranciscoPresencia 所指出的,在您需要本地模块时添加 .js
扩展是可选的。
var replyText = require('./reply_text.js');
所以你的代码应该是这样的,我测试了它。按预期工作
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;
我正在阅读 Professional Node.js,我正在尝试了解连接 HTTP 中间件框架。我创建了一个简单的中间件,它 returns 一个用自定义测试字符串回复的函数:
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')
});
正如 documentation use use
API to mount a middleware and a http
module to create an instance of server although you can create an instance just with connect as pointed here 指出的那样。
正如@FranciscoPresencia 所指出的,在您需要本地模块时添加 .js
扩展是可选的。
var replyText = require('./reply_text.js');
所以你的代码应该是这样的,我测试了它。按预期工作
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;