【问题标题】:Node.js error no server startupNode.js 错误没有服务器启动
【发布时间】:2014-08-02 06:13:49
【问题描述】:

作为 angular.js 课程的一部分,我下载并安装了 node.js,在主文件夹中插入了 server.js 文件,内容如下:

var connect = require('connect');

connect.createServer(
    connect.static("../angularjs")
).listen(5000);

然后尝试通过 cli 运行服务器,但在 cli 中出现错误:

TypeError: Object function createServer() {
  function app(req, res, next){ app.handle(req, res, next); }
  merge(app, proto);
  merge(app, EventEmitter.prototype);
  app.route = '/';
  app.stack = [];
  return app;
} has no method 'static'
    at Object.<anonymous> (C:\Program Files (x86)\nodejs\server.js:4:19)
    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)
    at startup (node.js:119:16)
    at node.js:906:3

【问题讨论】:

标签: node.js


【解决方案1】:

尝试:

var connect = require('connect');
var serveStatic = require('serve-static'); 
var app = connect(); 

app.use(serveStatic('angularjs')); 

app.listen(5000);

应该为你工作!

编辑: 在 Connect 3.0 中,.static() 被移动到一个名为 serve-static 的单独包中。 因此,您必须在运行此代码之前安装它。

【讨论】:

    【解决方案2】:

    编辑:这是针对旧版本的 Node,因此不回答问题。请参阅下面的 cmets。

    要使用connect,你需要设置环境,然后创建服务器

    var connect = require('connect');
    car app = connect();
    app.static("../angularjs");
    connect.createServer(app).listen(5000);
    

    您也可以通过以下简单方式做到这一点:

    connect.createServer(
        connect().static("../angularjs")
    ).listen(5000);
    

    【讨论】:

    • 你读过他的错误吗?他的问题是由您的第二个代码 sn-p 明确创建的。你的第一个 sn-p 也会为他产生同样的错误。
    • 你是对的。我使用的是旧版本的 Node 和 Connect。这个答案解释了如何处理较新版本的 Node stackoverflow.com/questions/16333790/…
    • 似乎服务器正在运行,但是当我试图打开我的测试页面时,我在浏览器中得到“Cannot GET /test.html”
    猜你喜欢
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    相关资源
    最近更新 更多