[请益] node.js问个很基础的问题

楼主: sec5566 (sec)   2018-09-11 17:46:48
从入行到现在知道有这个框架,
看过一些介绍,
但是没真正用过,
就知道他是写js的环境,
那问题来了,平常写网页,
打上<script>不是就可以写了,
为何需要用node.js?
或是直接副档名js,
引入html在浏览器上跑不就好了?
突然好像有点想通了,
node.js是不是直接把js当后端来用,
就是像php这样,
我之前是一直卡在js是前端语言的观念,
一开始我就是前js后php,
所以一直觉得很奇怪,
我这样理解对吗?
作者: deray (Deray)   2018-09-11 17:51:00
一百分!超过一百分!
作者: stevekevin10 (hippo泡)   2018-09-11 17:51:00
你入行了?
作者: highland (海兰德)   2018-09-11 17:52:00
先帮补血
作者: Severus5566 (正义 从天而降)   2018-09-11 17:53:00
楼楼上超酸
作者: deray (Deray)   2018-09-11 17:56:00
Q. 要如何在没有浏览器的环境执行javascript?
作者: alog (A肉哥)   2018-09-11 18:00:00
你大概要先把人家语言发展的历史摸清楚再来问会比较合适然后以现在的情况来说 就算你不用 nodejs 你用的软件底层一部分的实做就是要nodejs或自带相关引擎
作者: ij1001 (ij1001)   2018-09-11 18:00:00
Nodejs 是运作在服务器端,是处理收发请求的,跟客户端拿来浏览,两者运作所使用的情境是不同的。即便是用同样的语言,但聊的事情讲的内容是不一样~
作者: alog (A肉哥)   2018-09-11 18:01:00
你要用的开发工具可能有一部分要从nodejs的npm去装
作者: alongalone (沿着孤单的路)   2018-09-11 18:03:00
战起来 站起来
作者: lk2986706we   2018-09-11 18:12:00
你的浏览器会直接连数据库吗
作者: alihue (wanda wanda)   2018-09-11 18:31:00
这种问题在 stackoverflow 应该是 -1000 等级
作者: peanut97 (丁丁)   2018-09-11 18:31:00
nodejs 是后端语言,跟PHP 一样层级
作者: windclara (null)   2018-09-11 18:48:00
原来您的浏览器自带所有功能 都不用GET跟POST了呢
作者: kroutony (bingbing)   2018-09-11 18:54:00
在你开始写程式之前,建议先了解前端跟后端的分别以及他们是如何交流的
作者: fukinhot (抱歉粗口我怕热)   2018-09-11 19:49:00
其实严格来说nodejs 就是包了一个浏览器 让我们能够像是在执行console app一样执行js楼上各位都太凶了 我反而觉得不懂但不好意思问的人比较惨而且感觉楼上有人直接把nodejs == express / koa了?
作者: abc01251 (爪哥)   2018-09-11 20:01:00
大家不要这样..当初各位入行一定也问过蠢问题,也被前辈酸!不过大家当年一定不希望被这样对待,现在也不要扼杀幼苗吧!
作者: alihue (wanda wanda)   2018-09-11 20:06:00
知道会被嘘还不自己先玩过再来问
作者: mdkn35 (53nkdm)   2018-09-11 20:12:00
Id后面有5566应该是老人 怎可能还会问这种问题......
作者: longlongint (华哥尔)   2018-09-11 20:13:00
用 nodejs 就可以不用学 php (误nodejs > python > php > cgi (误战起来 战起来
作者: vi000246 (Vi)   2018-09-11 20:24:00
下一篇 为什么python不能在浏览器执行
作者: FrozenMoment   2018-09-11 20:38:00
go go go!
作者: yuigahamayui (由比ヶ浜 结衣)   2018-09-11 20:49:00
可怜,这种也称自己入行
作者: x000032001 (版废了该走了)   2018-09-11 20:52:00
golang > 其他
作者: DirtyVegas (拉斯维加斯)   2018-09-11 20:59:00
有勇气给推
作者: diabloevagto (wi)   2018-09-11 21:05:00
Node 包了浏览器???差太多了啊......
作者: godddddd (howudoing)   2018-09-11 21:08:00
因为作者把v8拿来用 包成node.exe接着node js档案就能自动直译js语言 产生想要的东西Express koa是专门写后端常见的npn module然后有一堆的middle ware 可以处理类似java 拦截器过滤器功能大概是这样 很久没碰 可能有错
作者: evilcherry (邪離子)   2018-09-11 21:17:00
人家很明显就没碰过backend...
作者: littlethe (东周流浪汉)   2018-09-11 21:19:00
大家别酸他吗,人都有刚开始什么都不懂的时候ㄚ,应该要多鼓励新人
作者: jackace (inevitable......)   2018-09-11 21:28:00
其实推文里也一堆人观念有问题 不晓得是不是反串
作者: evilcherry (邪離子)   2018-09-11 21:56:00
Runtime
作者: alog (A肉哥)   2018-09-11 21:58:00
Nodejs就是一整套的程式执行环境,带着google v8引擎跟自己兜的模组来执行所有程式设计师写好的js脚本,可以用你最熟悉的js语言来写有关服务器/服务应用、CLI工具等各种玩意,在javascript有很重要的地位早期开发者都因为他的架构特性可以达到较高并发跟执行效率吸引,拿来写web有一部分都是为了应付大流量时操作运送、同时在线的需求V8的regular express引擎写的也很好写parser速度有时候还比golang的还快但老实说 你说一定要用nodejs写web 用啊 完全看你的需求跟工时、现有熟悉的资源 用别的语言跟工具环境都一样有解不用*只是以现今来说 你就算不用nodejs 做后端的资料处理,但你还是可以享有nodejs社群开发的出来的成果,很多工具你都可以用nodejs里的npm装一装拿起来用 就例如你要写个vuejs还是要透过npm装 包括其他语言的框架里要执行某些东西处理也是会call nodejs来做 而不是用该语言再重造轮子nodejs 可以写的东西很多 开发者累计起来的资源也不少 可以不用当只是拿来写web工具去看待他
作者: senjor (哞哞)   2018-09-11 22:20:00
当成C#或者python之类的去看待他就好了
作者: FF16 (好无聊)   2018-09-11 22:20:00
在写网页上,nodejs的角色比较像是编译器,他其实是把一堆javascript编译成javascript
作者: menshuei (红茶)   2018-09-11 22:25:00
等等你真的把js写在script标签里?
作者: ku399999   2018-09-11 22:47:00
一句话:node可以做浏览器做不到的事
作者: u1240976   2018-09-11 22:53:00
nodejs 不是包浏览器啦XD, HTML/CSS/DOM 都要哭了QQnodejs/browser js的差异,大概就像desktop/android java
作者: Souseasou3 (Almighty)   2018-09-11 22:58:00
哪间?这样还入行
作者: a2551127 (点子绿)   2018-09-11 23:07:00
帮幼苗补血
作者: sharku (明珠求瑕)   2018-09-11 23:09:00
赞喔
作者: XXXXLAY (金城武(本尊))   2018-09-12 00:16:00
老人不能学nodejs哦?QQ
作者: vencil (vencs)   2018-09-12 00:42:00
这种东西不是google就知道了? 这样敢说入行...
作者: TitanEric (泰坦)   2018-09-12 00:48:00
这样算入行 厉害了
作者: crazwade (crazwade)   2018-09-12 01:15:00
真的建议你去google... 虽然我也不太懂 但有写过一些
作者: cha122977 (CHA)   2018-09-12 01:35:00
没网页时你怎么用js写程式?nodejs就提供这个功能啦
作者: dnabossking (少狂)   2018-09-12 02:04:00
alog说的大至上都正确看alog说的就好
作者: stormcorn (0￿是)   2018-09-12 04:28:00
怎么都不先查基本资讯的
作者: UniFish (贡贡老杯)   2018-09-12 08:20:00
原po的问题需要的答案明明很简单,为何推文各种绕弯XDDD
作者: async (异步)   2018-09-12 09:19:00
不了解可以学一下看看,我也是学了一下就解惑了
作者: FF16 (好无聊)   2018-09-12 09:49:00
UniFish 原po问的问题其实很难回答,因为你可以从他问的问题看出他缺乏某些基本观念,所以如果想回答他,那得先讲解基本观念。
作者: flowwinds (..)   2018-09-12 10:33:00
先看看nodejs的wiki..
作者: singergod (神)   2018-09-12 10:37:00
google 一下马上知道的东西,这样自称入行?
作者: YukiTW (ゆうき)   2018-09-12 11:37:00
他还有无网页的应用,我最近就做一个侧录网络封包的功能就用到 node.js
作者: youuuuuli (球给保罗)   2018-09-12 12:39:00
笑。厉害
作者: Masakiad (Masaki)   2018-09-12 13:20:00
不知道在冷嘲热讽什么,原po也没说自己多senior,也自知问题很蠢,但有问想知道答案应该鼓励而不是这样笑他吧
作者: alihue (wanda wanda)   2018-09-12 13:54:00
问问题前先“尝试、找资料”是软工基本素养。要问也是自己玩过,再问卡住不解的地方。这种大哉问就是欠嘘,被嘘也是写程式的必经之路
作者: vi000246 (Vi)   2018-09-12 14:19:00
是啊 这问题在stack overflow大概会被嘘爆
作者: devil115789 (味噌汤好喝)   2018-09-12 14:28:00
Node.js是一个能够在服务器端运行JavaScript的开放原始码、跨平台JavaScript 执行环境。他不是一个档案名称叫node副档名为js的档案执行环境,不是开发环境
作者: Jasonnor (Jasonnor)   2018-09-12 16:30:00
作者: benson1212 (Da)   2018-09-12 17:32:00
推荐你一个东西叫维基百科 很棒快学起来 科科
作者: brianhsu (坟墓)   2018-09-12 17:39:00
先搞懂你的程式码是在哪台机器上执行的(client side / server side) 应该就不会有这个问题了。
作者: deray (Deray)   2018-09-12 19:13:00
这不嘘一下不行 “没有人讲为什么不写在网页就好”
作者: wanderchang (七)   2018-09-12 19:31:00
又一个被browserify惯坏的
作者: kurtsgm   2018-09-12 19:33:00
我觉得你好像搞不太清楚前后端的差异捏...
作者: johsin605   2018-09-12 19:58:00
不忍嘘
作者: lion0208 (TGK)   2018-09-12 20:27:00
nodejs 不是跑在浏览器的,只是语言是 javascript,现在 javascript 可以跑在非常多地方,不是只在浏览器了
作者: art1 (人,原来不是人)   2018-09-12 21:39:00
可能不是本科毕业的,对于电脑的基础知识不了解
作者: longlyeagle (长鹰宝宝实验室)   2018-09-12 22:16:00
.
作者: BignoZe (BignoZe)   2018-09-12 22:21:00
敢上来问赢过很多人了 加油
作者: alog (A肉哥)   2018-09-12 23:36:00
如果你只是想问“为何不直接写在网页就好”那么我可以直接回答你,大多半的主因,是现在你接触到的专案不需要这个东西,又或者是你已经在用了,但是软件工具已经包得很好,你没有感觉。以一般写网页入门或是维护旧系统来说,假设后端语言是 php,那么搭配的前端一定是传统 js 最多搭上 jquery 足以使用。通常程式写是能上多少 script tag 就上多少 tag反正需要引入什么就用什么,没问题啊,妥妥的。但是如果你今天的需求是一个复杂的前端,动不动就有上百个javascript 档案合在一起请问您是要重整理你的 javascript 程式码的架构,还是继续维护这些复杂的东西呢?当然我们可以选择,继续使用一般的使用方式继续写下去,然后就是反正问题出现在说但如果每一次需求会不同,或是未来还要加东西处理,例如要对你的 source code 做 minimize 或 obfuscate、使用别人的使用者接口的框架来方便开发 (vuejs/reactjs)、导入单元测试、或是用其他的语法 ( 如: coffeescript、更新的 ecma script 版本 ) 来写 javascript 等各种需要是必须要有一个工具、转换器来处理资料这些资料像是做前端打包可能会用到 webpack 因为有些专案的复杂程度超出你的想像,或是有别的考量,都需要一个好的工具、环境或许你还是有一个疑问,就是我真的也不需要这么复杂啊js 我还是可以照传统的方式写那么就讲一个比较容易懂的,今天有一个玩意叫做 scss它可以方便你开发跟撰写 css 内容,再搭配其他的东西来整合、压缩、或是其他处理 ( like autoprefixer )以前有一个东西叫 compass app也有一个东西叫做 middleman 他们都可做到但是如果我在纯 javascript 环境,有没有现成的工具让我编译处理,有,而且很多 就现在很多多到你不知道用哪一个的状况在这些新颖技术的发展中,nodejs 提供了很多开发者的未来跟可能,这套环境让别人、你、我们可用最熟悉的工具来做,很多javascript 知名的 library 可能都是 nodejs 的环境来开发的程式,以便好安排架构、做编译,细心的团队还会加上测试确保在长期维护下品质稳定你说这么好用的工具跟环境架构,怎么不会有人利用跟开发耕耘他本质就不是用来写在网页上的,已经说了这是程式的执行环境做 web 后端只是当初开发历史发展下的一个产物,现今的这个 nodejs 早就在很多开发上无所不在,包括现在用的 vscode、atom 是 github 的 electron 专案( chromium + nodejs ) 延伸出来的,
作者: alog (A肉哥)   2018-09-12 23:47:00
原PO安捏你刚灾,其实我也很难解释这东西的用途,我尽量了。
作者: v9290026 (CH)   2018-09-13 00:06:00
推alog好心大大
作者: a8084123 (MINA ESUPA DAYO)   2018-09-13 02:45:00
推alog大解说
作者: ken90242 (大人)   2018-09-13 09:26:00
还好啦 厘清疑惑也不赖
作者: EightXD (八折XD)   2018-09-13 12:27:00
这个是我刚入行并碰Web相关第一个月搞不清楚的问题
作者: for5566 (Yo)   2018-09-13 13:42:00
是谁你不是不懂后端,连网页前端都没搞懂,别碰nodeJS了,先把浏览器架构这前端基础搞懂再说吧
作者: lturtsamuel (港都都教授)   2018-09-13 18:46:00
search the fucking giogle
作者: lachtchlee (nymph)   2018-09-13 20:32:00
简单补一句 在Node.js里 没有DOM给你玩 没html 没css
作者: evilcherry (邪離子)   2018-09-14 13:06:00
总觉得以前端三宝和PHP接触编程的很难明白一些概念
作者: kurtsgm   2018-09-14 20:30:00
你第二段那样就没错了 nodejs要当作跟php类似的东西你以前是前js后php 现在就是前js 后js 但两个依旧分开跑
作者: typepeter (∵Peter∴笑点)   2018-09-16 09:33:00
浏览器可以开server给别人连吗?可以是可以 比nodejs吃资源浏览器可以读档案吗?如果不是使用者主动操作是完全不能用程式操作的喔基本上想用浏览器作后端几乎什么都很难作又吃资源 再者和底层几乎无法整合你可以试试用浏览器写一个后端写到最后你会想要打烂电脑
作者: potatososo   2018-09-17 21:48:00
作者: lineage0916 (白穆)   2018-09-20 23:04:00
A大真的好心,有时候对人要仁慈一点,也许妳自己当初新手时也被人这样酸过,而且你的感受一定也不可能会爽,但用这种方式对待别人,你的心态也或成跟当初酸你的人一样囉?

Links booklink

Contact Us: admin [ a t ] ucptt.com