Node.js nodejs connect找不到静态

Node.js nodejs connect找不到静态,node.js,connect,Node.js,Connect,注意:我尝试了其他解决方案,但没有成功 一个点头的新手。我正试着跟随AngularJS pro,却被设置NodeJs服务器所困扰。根据这本书,我安装了nodejs,然后使用 npm安装连接 然后在nodejs文件夹旁边的文件夹中下载angularjs。然后编写server.js文件以连接到服务器。以下是该文件的内容: var connect = require('connect'); connect.createServer(connect.static("../angularjs"))

注意:我尝试了其他解决方案,但没有成功

一个点头的新手。我正试着跟随AngularJS pro,却被设置NodeJs服务器所困扰。根据这本书,我安装了nodejs,然后使用 npm安装连接

然后在nodejs文件夹旁边的文件夹中下载angularjs。然后编写server.js文件以连接到服务器。以下是该文件的内容:

    var connect = require('connect');
connect.createServer(connect.static("../angularjs")).listen( 5000);
当我使用以下命令运行此server.js文件时:

node server.js
我发现以下错误:

 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:\web\nodejs\server.js:2:36)
   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
函数app(req,res,next){app.handle(req,res,next);}
合并(app,proto);
合并(app,EventEmitter.prototype);
app.route='/';
app.stack=[];
返回应用程序;
没有“静态”方法
反对。(C:\web\nodejs\server.js:2:36)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)
在node.js:906:3
有什么想法吗,伙计们?
谢谢。

connect软件包在其最新3.x版本的代码库中做了一些更改,将
静态
中间件移到了自己的软件包中

所以你有两个选择:

选项1
您可以安装旧的2.x版本的connect并按原样使用:

$npm安装connect@2.X.X

安装最新的2.X.X版本将允许您当前的实现正常运行

选项2
您可以继续使用connect的3.x版本,还可以添加
服务静态

$npm安装服务静态

您还必须更新
server.js
文件,以包含新的
SERVICE static
模块:

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

var app = connect();

app.use(serveStatic("../angularjs"));
app.listen(5000);

dylants的回答很有帮助。但是,以下是我为解决相同错误而遵循的确切步骤。 1.在命令窗口中,将目录更改为安装nodeJS的目录。 2.已运行npm安装连接后,运行:

npm install serve-static
三,。使用以下代码创建名为server.js的文件:

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

var app = connect();

app.use(serveStatic("./angularjs"));
app.listen(5000);
  • 在命令窗口和安装nodeJS的目录中运行:

    node server.js

  • 导航到URL

  • 这应该行得通。以下是我的目录配置:
    C:\NodeJSInstallLocation\angularjs

    您可能想尝试类似的方法

    var express = require('express');
    var app = express();
    app.use(express.static('angularjs'));
    
    试试这个

      const express = require('express');
      const app = express();
      const path = require('path');
    
      app.use('',express.static(path.join(__dirname, '/static/')));
    

    为我工作,在同一文件夹中使用单点,即/angularjs@coure2011这一切都取决于启动节点时的
    pwd
    。当从
    /angularjs
    开始运行
    节点服务器.js时,使用两点是正确的(假设您的pwd是
    /angularjs/。
    )我尝试了这个,现在我在浏览器中遇到错误“无法获取/”@AnsBilal try“localhost:5000/test.html”。假设您遵循书中的示例(在OP中引用),URL应该适合您。经过一段时间的搜索,我找到了解决方案,并在我的博客上为其他人发布了这样的信息:欢迎来到SO。请仔细阅读。您的答案并没有为已接受的答案提供任何额外的见解。请添加一些关于代码的说明
      const express = require('express');
      const app = express();
      const path = require('path');
    
      app.use('',express.static(path.join(__dirname, '/static/')));