Mac OS X NodeJS:没有方法“路由器”错误

2023-12-06

使用 Mac Ports 在 MAC OS X 上安装 NodeJS v0.6.12。

    win764:node iwaldman$ which node
         /opt/local/bin/node

    win764:node iwaldman$ node -v
         v0.6.12

使用 npm install connect 安装连接。

写了一个简单的程序,connectServer.js:

    var connect = require('connect');
    var util    = require('util');

    function sendJSON(response, obj) {
        response.writeHead(200, {'Content-Type':'application/json'});
        var objStr = JSON.stringify(obj);
        util.debug('SENDJSON: ' + objStr);
        response.end(objStr);
    }

    var server = connect.createServer(
    connect.router(function(app){
        app.get('/foo', function(req, res){
            sendJSON(res, {path: 'foo'});
        })
        app.get('/bar', function(req, res){
            sendJSON(res, {parth: 'bar'});
        })
    })
    );

    server.listen(3000);

    util.debug('Server running at http://127.0.0.1:3000');

运行节点 connectServer.js。

得到以下错误:

    win764:node iwaldman$ node connectserver.js 

    node.js:201
            throw e; // process.nextTick error, or 'error' event on first tick
                  ^
    TypeError: Object function createServer() {
      function app(req, res){ app.handle(req, res); }
      utils.merge(app, proto);
      utils.merge(app, EventEmitter.prototype);
      app.route = '/';
      app.stack = [].slice.apply(arguments);
      return app;
    } has no method 'router'
        at Object.<anonymous> (/Users/iwaldman/dev/node/connectserver.js:12:10)
        at Module._compile (module.js:441:26)
        at Object..js (module.js:459:10)
        at Module.load (module.js:348:31)
        at Function._load (module.js:308:12)
        at Array.0 (module.js:479:10)
        at EventEmitter._tickCallback (node.js:192:40)

任何想法表示赞赏。


好吧,很难说,因为看起来您正在遵循的教程确实没有使用connect,但这里是一个使用 connect 应该有效的示例。

function sendJSON(response, obj) {
  response.writeHead(200, {'Content-Type':'application/json'});
  var objStr = JSON.stringify(obj);
  response.end(objStr);
}

function get(path, cb) {
  return function(req, res, next) {
    if (req.method != 'GET' || req.url != path) return next();
    cb(req, res, next);
  }
}

var connect = require('connect')
var app = connect()
  .use(connect.query())
  .use(get('/foo', function(req, res, next) {
    sendJSON(res, {path: 'foo'});
  }))
  .use(get('/bar', function(req, res, next) {
    sendJSON(res, {parth: 'bar'});
  }))
  .listen(3000);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mac OS X NodeJS:没有方法“路由器”错误 的相关文章

随机推荐

  • 如何安装com.mysql.jdbc.Driver“找不到类名的驱动程序:com.mysql.jdbc.Driver”?

    我正在设置 Atlassian Confluence 在选择数据库时 我选择 使用外部 Mysql DB 我看过一些教程 但对我来说 它并没有按照应有的方式工作 我使用 ubuntu 12 04 服务器并安装了 mysql 现在我尝试与外部
  • awk FieldWITHS 是如何工作的

    几天前我开始学习 awk 编程 有效的 awk 脚本 在第 102 页 作者解释了字段宽度 但我不明白它是如何工作的 请有人向我解释一下 fieldwidths 是如何工作的 场宽以空格分隔的字段宽度列表 设置后 gawk 将输入解析为固定
  • Vuejs 打开/切换单个项目

    我使用单个文件组件 并在其中之一中有一个列表 这个列表应该像手风琴一样工作 但据我在 Vuejs 文档中找到的 让每个项目单独打开并不那么容易 数据 问题和答案 是从 ajax 调用中检索的 我使用 jQuery 来实现这一点 但想知道如何
  • 升级到 Ninject 3.0.0-rc3 后连接字符串异常

    我最近将我的网站项目更新为 Ninject 3 0 0 rc3 之后我收到错误消息 提供的连接无效 因为它包含的映射或元数据信息不足 当我使用 2 2 0 0 版本时 所有这些都有效 知道什么会导致出现此异常以及如何解决它 我使用的是 EF
  • eclipse:覆盖config.ini中的user.name

    我有一个多用户 eclipse 3 4 安装 带有共享主配置区域 用户需要覆盖user name使用他们的全名和通常的方法 添加 Duser name 到 eclipse ini 是不合适的 因为覆盖必须是针对每个用户的 我尝试在 conf
  • 闪亮 - FILL 值未在闪亮服务器中正确传递给 ggplot - 未找到错误对象“输入”

    我正在尝试开发一个闪亮的应用程序 它将在浏览器上安装基于地图的热图 并允许您更改热图上显示的变量 该地图是具有 GIS 形状文件的地理区域 然后所选变量将作为热图显示在地图上 不幸的是我有一个问题 变量没有被传递给ggplot 正确 但我的
  • 从 Java 中的另一个类访问变量的实例

    是否可以从 Java 中的另一个类访问一个类中变量的实例 假设您在 A 类中拥有以下内容 private BlockingQueue
  • 正则表达式检查两个第一个单词是否相同

    例如 s1 Test Test the rest of string s2 Test the rest of string 我想积极匹配 s1但不是 s2 因为第一个词 s1与第二个相同 单词 Test 例如 正则表达式应该适用于任何单词
  • 如何在JS中下载浏览器(包括Firefox)中的10个以上文件

    我尝试使用以下代码一次下载多个文件 var urls for var i 0 i lt urls length i var tempLink document createElement a tempLink setAttribute hr
  • 尝试编写一个通用函数来将 JSON 解析为可编码结构

    我目前正在像这样解析 JSON struct ExampleStruct Codable init implementation if let jsonData jsonString data using utf8 do let decod
  • UITableView iPhone SDK 中的延迟加载图像

    我需要在表视图中实现图像的延迟加载概念 以便首先向用户提供文本数据 然后向用户提供图像 我怎样才能在我的应用程序中实现这个 需要帮助 请 提前致谢 Shibin 我为我的项目创建的内容如下 通过 UITableViewCell Async
  • 为什么名为“del”、“return”等的对象属性是语法错误?

    我知道人们不应该能够替换 del return 等 关键字的行为 但我不明白为什么不可能这样做 myobj del mystr 解析器会将其与什么混淆 有办法允许吗 当然 我可以使用不同的名称 但我想在 AWS 工具 s3cmd 周围有一个
  • 嵌套模型中 mongoose-auto-increment 插件的问题

    我正在尝试增加procedureid doctorId每当 api 调用被触发时 我正在使用以下语法 但是 它给出了一个错误Treatment procedureid 1 dup key当我第二次通过浏览器调用api时 我可以看到 proc
  • 在视图中渲染数据之前在控制器中过滤数据

    你好 我是very new到 MVC5 Razor 和 EF 我已经寻找了两天 但仍然无法找到解决我的问题的方法 我想要做的是查看用户输入年份 季度和部门的视图 提交时 我希望另一个视图的控制器能够查看这些参数并在渲染视图之前过滤数据 目前
  • 计算列中零的百分比

    我在 DF df catch rate 中有一列捕获率数据 其中包含十进制值和零的组合 我想计算整列中零行的百分比 以表明它们对数据的贡献 mean df catch rate 会成功的 您可以添加参数na rm TRUE如果有NAs
  • AJAX 和 Coldfusion:执行数据库更新并反映更改而无需重新加载

    我在想象这里需要的解决方案时遇到问题 我正在处理的网站上有一个选择菜单 客户端希望能够选择一个名为 创建新源 的选项 然后会弹出一个 JS 窗口 其中包含一个空白字段 供用户选择输入新的原点 提交此表单后 数据库将被更新 选择菜单现在将包含
  • 使用 data.table 在单一条件下替换多列

    我想将默认值 255 更改为 NA dt lt data table x c 1 5 255 0 NA y c 1 7 255 0 0 z c 4 2 7 8 255 coords lt c x y 其中给出了以下代码 x y z 1 1
  • 字母数字的正则表达式,但至少一个字母

    在我的 ASP NET 页面中 我有一个输入框 必须对其进行以下验证 必须是字母数字 至少包含one字母 即不能是全部 数字 d a zA Z a zA Z0 9 基本上这意味着 零个或多个 ASCII 数字 一个 ASCII 字母字符 零
  • ConcurrentBag 是内存泄漏的原因吗? [复制]

    这个问题在这里已经有答案了 可能的重复 ConcurrentBag 中可能存在内存泄漏吗 我的应用程序中存在严重的内存泄漏 我在其中一种方法中添加到本地并发包集合中的所有数据从未被收集 这个简单的代码演示了我如何使用它 void Main
  • Mac OS X NodeJS:没有方法“路由器”错误

    使用 Mac Ports 在 MAC OS X 上安装 NodeJS v0 6 12 win764 node iwaldman which node opt local bin node win764 node iwaldman node