Nodejs 连接找不到静态

注意: 我已经尝试了其他解决方案给予 here,但它不工作

一个有 NodeJ 的新手。我试图遵循 AngularJS 专业和卡住了设置 NodeJs 服务器。根据书中介绍,我安装了 nodejs,然后使用 安装连接

then downloaded angularjs in folder next to nodejs folder. Then wrote server.js file to connect to server. Here is the content of the file:

    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

Any ideas guys? 谢谢。

49739 次浏览

Connect 包对其代码库的最新3.x 版本做了一些更改,将 static中间件移动到它自己的包中。您可以查看已经移动到这里的包的列表.

所以你有两个选择:

选择一
你可以安装一个更旧的2.x 版本的 connect,并按照以下方式使用:

$npm install connect@2.X.X

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

选择二
你可以继续使用3.x 版本的 connect,也可以添加 serve-static:

$npm 安装服务-静态

You would also have to update your server.js file to include the new serve-static module:

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


var app = connect();


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


connect().use(
serveStatic("angularjs")
).listen(5000);

Dylan 的答案很有帮助。但是,为了解决同样的错误,下面是我所遵循的确切步骤。 1. 从命令窗口中,将目录更改为您安装 nodeJS 的目录。 2. After having already ran npm install connect, run:

npm install serve-static

3. 使用以下代码创建一个名为 server.js 的文件:

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


var app = connect();


app.use(serveStatic("./angularjs"));
app.listen(5000);
  1. 仍然在命令窗口中,并且仍然在安装 nodeJS 的目录中,运行:

    Node server.js

  2. 导航到 URL Http://localhost:5000/test.html

这应该可以。下面是我的目录配置: 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/')));