【问题标题】:Installing a Web Server for Node.js为 Node.js 安装 Web 服务器
【发布时间】:2014-09-23 16:50:12
【问题描述】:

我正在尝试阅读我购买的一本名为“Pro Angular JS”的书,但无法让 Web 服务器指向正确的端口。所以我转到命令行,运行 Node,我得到的第一个错误是,当我尝试安装 connect 时:

npm should be run outside of the node repl, in your normal shell.
(Press Control-D to exit.)

好的,很公平。因此,我按照命令指定的方式进行操作,并以用户身份安装它,最终在我的用户根文件夹中添加了一个名为 node_modules 的文件夹。好吧,看来一切还是有意义的。

现在,这本书告诉我在 Node.js 安装文件夹中创建一个 server.js 文件。我的用户实际上没有创建 Node.js 安装文件夹。我肯定看到了 node_modules 文件夹。所以我猜我的用户的根目录是 node.js 的安装位置,但它可能是隐藏的还是什么?我相信当我为 Node 使用 Mac 安装程序时,它说它是在 usr/local/bin 中创建的。但我不知道那是我计算机上的用户,还是对我计算机的更多 root 访问权限。

最后,回到这个 server.js 文件...所以我用文本编辑器创建了它,包含以下代码:

var connect = require('connect');

connect.createServer(
connect.static(".../angularjs")

).listen(5000);

当然,他们希望我将此文件添加到我的 Node 安装目录中。目前,它位于我当前用户(用户是 kst001)根目录所在的位置。这也是我使用 shell 中的 npm install 连接线安装 node_module 文件夹时创建的位置。他们还希望我创建一个名为 angularjs 的文件夹,我将在其中存储我的应用程序,并说将其放置在安装 node.js 的根目录中。再一次,与其他所有内容一起坐在根目录中。然而,当我尝试在端口 5000 (localhost:5000/test.html) 中启动我的测试文档时,我收到“找不到页面”错误。

已经尝试使用此链接来解决我的问题,这对我的问题来说似乎已经死了,但它没有解决任何问题:

Node / connect issue Object function createServer has no method static

顺便说一句,我使用的是 Mac。有什么想法吗,伙计们?任何帮助将不胜感激。

【问题讨论】:

    标签: node.js angularjs npm connect


    【解决方案1】:

    connect.static() 不起作用的原因是,最新的主要版本 connect (3.x) 不再包含在 2.x 中捆绑的所有中间件。

    connect 的自述文件有一个 list of middleware references,它向您显示 npm 上的模块名称,为您提供每个中间件的旧功能(例如,static 现在分解为它自己的模块 serve-static)。

    【讨论】:

    • 所以我只是将connect.static更改为connect.serve-static吗?我正在阅读文档,但它们的实现似乎与书中的教程大不相同......
    • node.js 社区的发展速度仍然很快,因此书籍和其他参考资料很快就会过时。您需要npm install serve-static,然后在脚本顶部使用var static = require('serve-static');。然后将connect.static(...);替换为static(...);
    • 好的,这样做了,我收到一条错误消息,上面写着“没有方法 createServer”。我的代码如下: var static = require('serve-static'); var connect = require('connect'); connect.createServer( static("../angularjs") ).listen(5000);
    • 我猜他们也在 3.x 中删除了 createServer()。我将按照connect readme 中的示例进行操作,这样您就不会使用旧信息。
    • createServer() 不是在连接时调用,而是http,所以请改用:http.createServer(app)
    【解决方案2】:

    我正在关注同一本书/示例和以下作品。我声称没有信用,它来自另一个关于设置简单服务器的 Stack Overflow 答案以及对同一答案的评论内容(问题 24346161 从这里链接到它:nodejs connect cannot find static

    因为我在完全相同的学习环境中使用它(我还购买了名为“Pro Angular JS”的书),并且我已经在房子周围呆了 3 个小时试图解决这个问题(是的,一个完全的新手),我想我会发在这里。

    首先从你的节点安装目录 npm install serve-static

    其次,您的 node server.js 代码用于一个简单的静态服务器,用于在 localhost:5000 浏览器窗口中提供您的 angularjs 目录内容,在 Windows 7 机器上应该是(截至 2015 年 7 月)...

    var connect = require('connect'),
        serveStatic = require('serve-static');
    
    var app = connect();
    
    app.use(serveStatic("./angularjs"));
    app.listen(5000);
    

    我只是在 angularjs 目录中添加了一个简单的 index.html 文件,开始包含

    连接正常

    对其进行测试,它奏效了。

    【讨论】:

      猜你喜欢
      • 2013-11-06
      • 2012-08-04
      • 1970-01-01
      • 2014-07-16
      • 2012-05-19
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      • 2013-05-23
      相关资源
      最近更新 更多