nodejs+express是否适合纯大型网站?
发布于 12 年前 作者 d4rkl0rd 111738 次浏览 最后一次编辑是 8 年前 来自 问答

比如douban及电子商务这类的网站?

54 回复

。。。。。。

没实践没尝试过不敢妄下论断

希望有这方面经验的童鞋能从 性能、维护、协作、包括三方库支持等方面分享下啊

nodejs是为了解决某一类问题而产生的,大型开发可能只会用nodejs具有优势的地方。

为什么不是适合

电商不适合,但可以适合电商的产品展示,评论等,不太适合交易系统,个人看法。

楼上说的很有道理,感觉nodejs确实只适合某一方面的问题,做大型的网站,还是欠缺。

开发成本太高,维护和再开发成本高,人员成本高,运营风险大

毕竟Node.js很年轻啊

可以!!!!!!!!!!!!!!

关键如何定义大型网站

所说的"纯大型网站""电商"都假设得太笼统了,谁会那么头大给一项新技术去打这么笼统的包票。

建议尝鲜就算了。时间这么宝贵,何苦为难自己。

我个人用Node做了几个中小Web项目,其中有两个投入了实际部署,偏重于业务处理,由于用户量并不多,目前运行也没出过问题。与之前我接触过的Web开发语言、框架来说,Node在开发效率方面算是可以了,至少在编码、部署方面简单有优势。有人说Node不适合高耗时、高计算操作,但这些完全可以交给其他语言来做,在项目中用C++、JAVA来承担耗时操作,再异步返回给的Node。以上,个人见解,离题了,供LZ问题作为一点小参考 :)

整个命题很奇怪.

@saber nodejs做web还是很累的,就拿和php相比,node虽然提供了一些模块,但是很多做web基础的东西都没有搭建完善,包括mysql这样的模块还要别人写的一个包去下载,万一这个包中出现bug是致命的…nodejs而且如果项目大了,代码维护很困难,可以去看下现在网上的一些node写的代码,那个叫奔放啊!

我用 NodeJS 做 http 网关,后面接 oracle 数据库。然后用 PL/SQL 写存储过程来输出页面和做post处理。NodeJS 做 http 网关远胜于 oracle 自家的 apache + mod-plsql 模块。

但是直接用 javascript 写网站,暂时还不成熟,比如即使向 connect 这样流行的框架也经常可以看到明显的bug,而且主流数据库连接能力不足,缺少将 jdbc 这样的标准。因此不建议大规模使用。

但是 NodeJS 生态圈最终会完善,相关各个应用领域都会出现成熟的软件包,IDE 的支持也会跟进,那时在规模应用不迟。

不适合做交易

最直接简单的是关键是人力成本

即便是js 只要放在后台,同样也需要良好的结构化编码。关于这点大部分人一听说是用js写后台。就什么都忽略了。

没什么绝对的适合与不适合。当年Django刚出来的时候也有大队的人说不适合做网站呢,现在用的不也挺好的? 反正我现在正在用node+mongo来做大型的云服务网站,问题bug确实有,但是怕什么呢,改呗。看中的就是开发速度,以及上手的难度。最近招了几个应届毕业生,培训一个星期就能上手了干活了。人力成本不高的。

可以是可以,但是基础设施不是很完善,做起来稍微麻烦点,我觉得nodejs最适合的场景是webapi这种类型

只要业务逻辑不是特别复杂就可以,nodejs适合功能逻辑简单,并发访问量大的请求

花瓣网就是nodejs做的,只要分层和结构弄好,应该没什么问题

一部分,有一部分需借助其他语言的优势,要在nodejs实现语言统一的一个rpc方案,现在用thrift就可以解决,比如做电商的订单同步,购物车,结账这种大数据,高计算需要用JAVA或者TC,MQ去做服务,我觉得最主要是你选择的电商架构方式如何,有时候一些好的架构能弥补本身语言的一些不足.

nodejs的第三方库还是很丰富的,不过稳定性和强壮性于JAVA比起来就弱了很多,开发过程中各种蛋疼,第三方库的各种bug,各种坑让你去踩,如果遇到线上产品紧张的时候,你就悲剧了……好处是,踩坑的过程中,你会学到很多。

@initphp 奔放这个形容词很贴切!!

适合一堆高手在一起做东西.主要是看人.

最主要的问题,应该在于开发人员到底对Javascript这个看式简单的语言到底了解有多深

完全可以,

node.js平台,0.10 版 ,开发网站完全没有问题, Javascript 太灵活了,要写好真**不容易,,,,

完全可以,

plurk.com曾经在java后端扛不住流量压力的时候,用临时写的node.js顶了半年。当时是 node.js 0.2的版本。后来他们的java码农解决问题之后,才切回java :D 如果事后不说,谁会知道呢?

PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44% http://ourjs.com/detail/52a914f0127c763203000008

我也赞成,人力成本真的很贵!靠谱太少!

WALMART 黑色星期五 是用nodejs扛过去的。

看程序员的能力!

Nodejs已具备了构建大型网站的条件,但真能实现还是要看人!

node是为webapp而生的。

@dengqiao 为什么业务逻辑复杂的就不合适呢?

@snoopy 是用node做中间层调用java封装好的数据接口,还是直接node操作数据库?

我个人觉得没有什么不可以,主要看谁去做的问题,代码看你怎么去写。我的当前的项目就是采用node.js来做,电商的。好了给大家上地址。

两年前的坟都给挖出来了,现在看看还蛮有意思的。 纠结的就两个问题: 1、性能 2、功能

性能方面Node其实不差呀,用JAVA、C就一定高于Node?那还得看什么人写的不是? 功能方面其实也一样,得看编码质量。

当然了,大牛追求极致和细节,质量、投入、产出之类的也要衡量的,至于最后选哪个框架那种语言,是有取舍后的结果。

看好Node。

淘宝貌似就是用Nginx + Node.js + Java做前后端分离。

@dean5277 不是要前后段分离的,也是不是要 nodejs+java API, 如果nodejs直接开发web呢? 比如 express/sails 开发 电商会怎样?

@yangxiaoyang 请教一下, 电商平台后端全用nodejs还是 nodejs+API?

@newghost 他只是替换了 接口处理部分吧, 现在大家都开始用来开发网站,整站啊, 这个根本是用错了地方。什么叫合适,什么叫适合,这也分不清, 最适合做web网站的是php,ruby,python,.net,java…等 流程式开发的工具, 而不是回调callback的东西。 nodejs适合的是IO密集的API调用。用错了, 就等着熬夜加班除bug吧。 我是深受其害啊

@qingtiandalaoye 肯定是API,如果敢全用,就等着: 1: 不停的PM重启 2:难以看懂的代码逻辑,无穷尽的加班ot 3:看着现成的其他语言的代码生成能力,眼泪汪汪 4:基本丧失了愉快的编程的乐趣,你会永远想如果用其他语言会多好

我也在用mysql express angular node做一个较大的平台,感觉ok呀,你们表吓我。因为也是写纯sql,开发效率没mongo那么高,不过性能是没得说 自豪地采用 CNodeJS ionic

nodejs开发了半年,一开始不习惯,现在是越来越溜了,曾经作为门外汉觉的nodejs这东西生产的代码一定是难以维护的,现在已经改变了这个看法,基于异步单线程编程的思维不同于多线程阻塞模式编程思维,需要大脑切换一下模式,打破固有的思维框架,用全新的视角迎接node

一个技术站“能”做什么并不意味着它一定是最佳选型,C还可以写网站后台呢,但正式没人用C写网站。 很多时候技术栈的成本问题才是选型的主要因素,“成本”体现在:市场上人多不多,好不好找;开发效率高不高,尤其是深度业务的开发效率;中长期维护成本;新人是不是容易上手;库成不成熟;测试部署是不是容易。这些方面,Javascript都不是最优选择,当然也不是说它是最差选择,只不过JS并没有绝对优势;虽然Express是一个优秀的框架。如果你写过PHP和Python,用过它们的框架,就自然会明白。 绝大多数项目的选型,是不需要non-blocking的那种性能的,用钞票横向扩展就可以了。

一般大型的网站都不是一种技术来完成的,有用java的,因为jvm运行速度确实快,有用python,脚本话,如运维的可以使用,有用nodejs因为并发大,开发简单等等。。。总之大型网站都是各种技术的结合完成的

回到顶部