为什么我按照书上的实例一直报错,connect.static is not a function这么简单的语句唉

图片描述
图片描述
图片描述

var connect = require('connect');
connect.createServer(
    connect.static('../angularjs')
).listen(5000);



就这么一句代码,控制台一直 TypeError: connect.static is not a function
报错,然后我输出connect,没问题,但是createServer方法就报错,一次使用nodejs,按照书上来的,怎么一直不行呢?

声明一点,我已经npm install connect模块了!!!!!!
阅读 10.7k
8 个回答

原因是3.x的connect把很多非核心功能分离出去了, 由其他的middleware实现. 2.x的static方法, 在3.x中由serve-static实现. 你安装的是3.x的版本, 所以会报这个错.

解决办法, 在安装connect的时候指定使用2.x的connect

npm install connect@2.x

图片描述

另:

其他被分离出去的功能参见connect的github主页.

你这本书似乎和现在的情况出入有点大. 如果可以, 尽量不要看中文书, 多看官网的wiki, 文档一类的.

connect的意义是中间件的思想. 可以学习expressjs, 然后再学个all in one类型的框架, 例如meteor, sails等等.

那是因为 这行代码运行需要引入 connect模块
根据提示connect.static is not a function 就是找不到这个模块嘛
一般来说 你需要执行上一步 npm install connect 放到本地。

你执行了npm inatall connect了吗?你可以在第二行加一句console.log(connect)看看,感觉是undefined

版本已经更新了,看看新版本的吧!

安装的express版本与书上写的不一致,很有可以书已经过时,还是3.X,而现在都是4.X了!

现在技术更新的太快了,看书的话一定要记得看版本,因为你正常安装的,都会默认安装最新的稳定版本,有极大的可能会跟书上的版本不一致,如果更新幅度小还好,更新幅度大,书上的代码很可能就废掉了!

所以: 学技术的正确姿势是:

  1. 首先看官方网站

  2. 看不懂的看国内的技术贴(注意看时间!太旧的时效性会降低)

  3. 看相关技术的论坛

  4. 不懂的就问~

http-server 了解下?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏