如何在 Node Js 中连接多个应用程序....(Node Js 在行动)
how to connect multiple app in Nodejs.... (Nodejs in action)
let api = connect()
.use(users.users)
.use(pets.pets)
.use(errorHandler.errorHandler);
let app = connect()
.use(hello.hello)
.use('/api', api)
.use(errorPage.errorPage)
.listen(3000);
Nodejs 中的源代码正在运行..
没用。 => 'api' 永远不会被调用。当 URL 是 /api.
时什么也没有发生
我该如何解决?
pets.js
module.exports.pets = function pets(req, res, next) {
if (req.url.match(/^\/pet\/(.+)/)) {
foo();
}
else{
next();
}
}
users.js
let db = {
users: [
{name: 'tobi'},
{name: 'loki'},
{name: 'jane'}
]
};
module.exports.users = function users(req, res, next) {
let match = req.url.match(/^\/user\/(.+)/);
if(match) {
let user;
db.users.map(function(value){
if(value.name == match[1])
user = match[1];
});
if(user) {
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(user));
}
else {
let err = new Error('User not found');
err.notFound = true;
next(err);
}
}
else {
next();
}
};
并且连接版本是
"connect": "^3.6.6"
可以'connect(app)'吗?
你不应该实例化 two connect servers。你想要做的是将这些中间件链接为
.use('/api', users.users);
.use('/api', pets.pets);
第一个中间件将通过 next()
将请求传递到 pets.pets。
您可以在 this link 阅读更多内容。遗憾的是 connect 不支持这种类型的链接:
.use('/api', [users.users,pets.pets]);
这将是解决您的问题的好方法,但 express 支持它。
因此,如果您正在研究 NodeJS,您绝对应该熟悉 Express,Connect 是一个很好的入门工具,但它非常简单,没有任何体面的功能,而且您身边没有一些 'hacking'。
let api = connect()
.use(users.users)
.use(pets.pets)
.use(errorHandler.errorHandler);
let app = connect()
.use(hello.hello)
.use('/api', api)
.use(errorPage.errorPage)
.listen(3000);
Nodejs 中的源代码正在运行..
没用。 => 'api' 永远不会被调用。当 URL 是 /api.
时什么也没有发生我该如何解决?
pets.js
module.exports.pets = function pets(req, res, next) {
if (req.url.match(/^\/pet\/(.+)/)) {
foo();
}
else{
next();
}
}
users.js
let db = {
users: [
{name: 'tobi'},
{name: 'loki'},
{name: 'jane'}
]
};
module.exports.users = function users(req, res, next) {
let match = req.url.match(/^\/user\/(.+)/);
if(match) {
let user;
db.users.map(function(value){
if(value.name == match[1])
user = match[1];
});
if(user) {
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(user));
}
else {
let err = new Error('User not found');
err.notFound = true;
next(err);
}
}
else {
next();
}
};
并且连接版本是 "connect": "^3.6.6"
可以'connect(app)'吗?
你不应该实例化 two connect servers。你想要做的是将这些中间件链接为
.use('/api', users.users);
.use('/api', pets.pets);
第一个中间件将通过 next()
将请求传递到 pets.pets。
您可以在 this link 阅读更多内容。遗憾的是 connect 不支持这种类型的链接:
.use('/api', [users.users,pets.pets]);
这将是解决您的问题的好方法,但 express 支持它。 因此,如果您正在研究 NodeJS,您绝对应该熟悉 Express,Connect 是一个很好的入门工具,但它非常简单,没有任何体面的功能,而且您身边没有一些 'hacking'。