注意:我已经尝试过这里给出的其他解决方案,但是没有用
NodeJ的新手。我试图跟随AngularJS专业人士,并陷入设置NodeJs服务器。根据书,我安装了nodejs,然后使用npm install connect安装了connect软件包
然后将angularjs下载到nodejs文件夹旁边的文件夹中。然后编写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
有想法吗?谢谢。
connect软件包在其最新的3.x版本代码库中进行了一些更改,将static中间件移至其自己的软件包中。 您可以在此处查看已移动的软件包列表。
static
因此,您有两种选择:
选项1 您可以安装旧的2.x版本的connect并按原样使用:
$ npm安装connect@2.XX
安装最新的2.XX版本将使您当前的实现正常运行。
选项2 您可以继续使用3.x版本的connect,还可以添加serve-static:
serve-static
$ npm install serve-static
您还必须更新server.js文件以包括新serve-static模块:
server.js
var connect = require('connect'), serveStatic = require('serve-static'); var app = connect(); app.use(serveStatic("../angularjs")); app.listen(5000);