nodejs connect cannot find static

三世轮回 提交于 2019-11-26 03:48:52

问题


NOTE: I have tried other solution given here but it didn\'t work

A newbie with NodeJs. I am trying to follow AngularJS pro and got stuck with setting up NodeJs server. According to book, I installed nodejs and then installed connect package using npm install connect

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);

When I run this server.js file using:

node server.js

I get following error:

 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? Thanks.


回答1:


The connect package has made some changes in the latest 3.x version of their code base, moving the static middleware to it's own package. You can view the list of packages that have been moved here.

So you have two options:

Option 1
You can install an older, 2.x version of connect and use that as is:

$ npm install connect@2.X.X

Installing the latest 2.X.X version will allow your current implementation to function properly.

Option 2
You can continue to use the 3.x version of connect, and also add serve-static:

$ npm install serve-static

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);



回答2:


The answer by dylants is helpful. However, here are the exact steps that I followed in order to resolve the same error. 1. From the command window , change directory to the directory in which you installed nodeJS. 2. After having already ran npm install connect, run:

npm install serve-static

3. Create a file named server.js with the following code:

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

var app = connect();

app.use(serveStatic("./angularjs"));
app.listen(5000);
  1. While still in command window, and still in the directory in which you have installed nodeJS, run:

    node server.js

  2. Navigate to the URL http://localhost:5000/test.html

This should work. Here is my directory configuration: C:\NodeJSInstallLocation\angularjs




回答3:


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

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



回答4:


You might want to try something like this

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


来源:https://stackoverflow.com/questions/24346161/nodejs-connect-cannot-find-static

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!