如何修复 connect.router?

问题描述 投票:0回答:2

我正在通过Node for Front End devs工作,正如SO上的人已经指出,Connect不再有路由模块。有些人建议使用 Express,但我不确定确切的语法。

我正在处理的示例托管在这里:
github.com/garann/node-for-frontend-devs/blob/master/03-03.js

我想完成模板教程:
Node.js:github.com/garann/node-for-frontend-devs/blob/master/04-02.js
html: github.com/garann/node-for-frontend-devs/blob/master/public/parent.html
我想知道人们是否认为放弃这些基于 Connect 的课程而只学习如何使用 Express 可能会更好?因为无论如何路由很可能需要 Express..

感谢如此出色的垃圾邮件防护,我不得不删除 github 链接的 https:// 部分。

感谢您的帮助。

node.js express routes node.js-connect
2个回答
4
投票

尝试使用这个:https://github.com/baryshev/connect-route

更新

在您的项目文件夹中执行:

npm install connect-route

更新了示例中的代码:

var connect = require("connect");
var connectRoute = require("connect-route");

connect(
  connect.static(__dirname + "/public"),
  connectRoute(function(app) {
    app.get("/sayHello/:firstName/:lastName", function(req, res) {
      var userName = req.params.firstName + " " + req.params.lastName,
        html = "<!doctype html>" +
          "<html><head><title>Hello " + userName + "</title></head>" +
          "<body><h1>Hello, " + userName + "!</h1></body></html>";

      res.end(html);
    });
  })
).listen(8000);

将浏览器指向:

http://[your_host_here]:8000/sayHello/nick/name


0
投票

总结

connect.router 在 2.x 版本中被删除。我从 1.x 中获取了代码并将其发布为

connect_router

安装

npm install --save connect_router

使用方法

if (!connect.router) {
  connect.router = require('connect_router');
}

function route(rest) {
  rest.get('/api/hello', function (req, res) {
    res.end('hello');
  });
}

app = connect()
  .use(connect.router(route))
  ;

server = app.listen(port, function () {
  console.log('listening on', server.address());
});

在 Github 上

https://github.com/coolaj86/connect_router取自Connect 1.x的路由器,文档本质上是测试

原始文档在...某处。

© www.soinside.com 2019 - 2024. All rights reserved.