javascript - 为什么我按照书上的实例一直报错,connect.static is not a function这么简单的语句唉
PHPz
PHPz 2017-04-11 10:11:52
[JavaScript讨论组]



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



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

声明一点,我已经npm install connect模块了!!!!!!
PHPz
PHPz

学习是最好的投资!

全部回复(7)
ringa_lee

pro angularJS?
我当时看这本书的时候也遇到过,楼上说的对,高版本的NodeJs不支持connect,需要加入这个



这是是我当时看的答案,
http://stackoverflow.com/questions/24346161/nodejs-connect-cannot-find-static

解决别忘给个采纳啊

PHP中文网

原因是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

伊谢尔伦

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

PHP中文网

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

PHPz

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

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

  1. 首先看官方网站

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

  3. 看相关技术的论坛

  4. 不懂的就问~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号