代码之家  ›  专栏  ›  技术社区  ›  Vinod VT

events.js:130 throw TypeError(“listener必须是函数”)

  •  2
  • Vinod VT  · 技术社区  · 12 年前

    我正在尝试运行node.js,但出现此错误

    events.js:130
    throw TypeError('listener must be a function');
    

    我的代码是,

    var connect = require("connect");
    var http = require("http");
    var app = connect();
    // Logging middleware
    app.use(function(request, response, next) {
     console.log("In comes a " + request.method + " to " + request.url);
     next();
    });
    
    // Send "hello world"
    app.use(function(request, response) {
      response.writeHead(200, { "Content-Type": "text/plain" });
    response.end("Hello world!\n");
    });
    http.createServer(app).listen(1337);
    

    现在在终端上执行以下代码 node app.js 我收到一个错误

    events.js:130
    throw TypeError('listener must be a function');
          ^
    TypeError: listener must be a function
    
    at TypeError (<anonymous>)
    at Server.EventEmitter.addListener (events.js:130:11)
    at new Server (http.js:1850:10)
    at Object.exports.createServer (http.js:1880:10)
    at Object.<anonymous> (/var/www/express/app.js:17:6)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    

    我安装了node.js和express.js。如何执行这段代码?

    1 回复  |  直到 12 年前
        1
  •  0
  •   Kevin Wright    12 年前

    我发现了错误。

    问题是程序(app.js)不在framework文件夹的根目录中。我将此程序的位置更改为express frames根文件夹。现在它工作得很好。

    推荐文章