最近和朋友要做一个项目,本来打算用java来做,但感觉学习曲线太大,所以决定采用node.js,想问一下学习node.js是否需要先学习Javascript?然后求推荐点入门书籍或资料。
当时是有javascript基础最好了,给你个小项目的源码照着做做;
https://github.com/hubwiz/example-node
要学js,但是浏览器内的js可以不学
答案是肯定的,而且你还必须非常精通js...我就是死在这个上面的...祝你好运
Node 的曲线未必比 Java 要平缓, Javascript 必须是基础,浏览器部分不必看,但是想学好,犀牛书是一定要看的。
要说快速上手,Python 或 PHP 吧,不说提高,只论快速做出东西, 这俩对付起来速度还挺快。
需要学前面的ECMAScript
。看完之后,后面的dom和bom就不用看了,直接看node的官方api文档就好。
要学javascript的。我也是有javascript基础,才学nodejs的。
这里有nodejs的资源。(大牛博客站点,教程,好文章等。)
https://github.com/edagarli/programming-articles-zh_CN
肯定的啊 因为node.js 就是在服务器端执行的javascript
这是肯定的,Node平台需要用javascript语言来实现程序,所以对于楼主所问,javascript的基础是要有的,还要有HTML、CSS、勤看API的能力与基础。javascript的基础可以参考书籍《Javascript高级编程 第三版》进行恶补基础。
楼上说的很有道理,java太麻烦,用了python以后不爱再用java了,ruby on rails web项目已经完美了。php的laravel可以说事php 的ror,CI更简单,但是理念没有Laravel先进。要是连javascript还要现学的话还不如学一下php,再用个mvc框架呢。js想写好真不太简单,更别说nodejs 在express框架
可以先把javascript的基础语法看了,因为node.js是构建在javascript基础之上的,盖房子不能没有砖吧~
然后可以看看现成的一些demo,熟悉一下,找找感觉。
说是找找感觉,其实是让你适应node.js的异步编程模式,等你这个适应了,那node.js上手的速度就快的飞起。
学写文章之前是否需要先学认字?
以我个人的经历来看,不需要。
前端的 JavaScript 教程很多时候有很多奇怪的关注点,比如说 undefined 与 null 有哪些区别啊,为什么 == 不如 === 啊(我观察了一下,我写的所有小 Node.js 项目这两者毫无区别),或者莫名其妙的东西相加起来的和是什么。相反,我在 Node 里遇到的几乎所有对象都是……我也不知道叫啥了,对应 C 的 POD?
而且现在后端用 Traceur 那么方便,transpile 一下 ES6 就可以上了,都不需要看原型链就能写 class,多好。
需要注意的几个点大概有:
- 异步概念本身,数据真的只能在回调函数里用啊。这个看似很好理解,但是要形成直觉要不少时间。
- 对必包理解的要好。看看 SICP,做做 2.2.4 那章节,或者用 JavaScript 写个 parser combinator?我没写成就是了……
- 知道 this 的实现方法:func.call(thisPtr, ...),这样你给对象写异步函数就不会死了。
- 熟悉一下 ES6 的 Generator,如何用它解决 callback-hell。我现在想通了,千万不要看什么教程,你直接对着 Generator 撸,搞懂了基本的语法自己去构造解法。提示:generator 是可以通过 yield 暂停的。检验搞没搞懂的方法?suspend.js v0.5.0 有个 bug,题主能看出来对 Node 这坨乱七八糟的东西就有个大概的了解了……
那个 bug 真坑爹啊……
Javascript编程精粹
Node.js编程指南
是这样:
学javascript,
不要学DOM
可以使用typescript,或者coffeescript,来开发nodejs,适合之前写 类 形式语言(java)的同学,能很快上手。
恩,javascript的基本语法,函数还是很有必要的,推介《javascript高级程序设计》和朴灵的《深入浅出nodejs》,知识链接http://.com/a/1190000000348772
要,而且必须,而且还得精通。node 是 服务端的 javascript。
入门教程:
node 简介:
http://www.nodebeginner.org/index-zh-cn.html
node web框架 express:
http://www.csser.com/board/4f77e6f996ca600f78000936
入门教程汇总:
http://www.cnblogs.com/lhb25/p/nodejs-tutorials-and-resources.html
我在只会写alert("hello world!")时,开始了写nodejs,nodejs入门并不难.
照着一些案例代码写,开始可能很不习惯异步的写法,于是就使用async库.
传统数据库设计不够简介,于是就使用levelup.
当然javascript的特性不了解难免会
采坑,边采边写吧,理解和记忆都会很深刻.
比如在异步里不小心用了全局变量,就使用变量时少写了var,就悲剧了.
如果我说不用是不是会被吐槽。因为我是几乎0基础上手nodejs的。不过如下知识是必备的:
1、一门其他语言的使用经验,如php,c++等
2、熟悉面向对象思想,还有js的面向对象和模块化的编程思想
3、熟悉nodejs的异步模型,其实说白了就是异步回调的基本原理。
4、熟悉json的使用
如果是做web开发,恐怕要从express开始,一些url解析的知识也是必备的。
只说初级的学习曲线,以做一个 Web 项目为考量范围,Node.js 的学习曲线未必为会比 Java 平缓,特别是你还不会 Javascript 的前提下。我个人不推荐这么选,如果当前的紧急目标是实现一个 Web 项目,那么 Ruby 的 Rails 框架和 Python 的 Django 框架还有 PHP 的 Laravel 框架都是比较容易上手的,Java 的 Play 也可以一试。
如果问我的推荐?Rails(因为别的我不熟……)
浏览器端完整的JavaScript实现是由以下3个不同部分组成的:ECMAScript、文档对象模型、浏览器对象模型。
对于服务器端,以上三部分你就只需要看ECMAScript相关的内容就行了,剩下的东西是Node.js独有的知识点,看官方文档即可。
你问的这个问题就像是问看英文书要不要学习英语一样
Node的资料可以看Cnode社区的汇总:
千里之行始于足下,node.js资源中文导航